Учимся писать sql-запросы и сталкиваемся с некоторыми проблемами. Запрос: ВЫБРАТЬ * ИЗ соревнований c ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ идентификатор соревнования, СУММ (количество) КАК количество ИЗ билетов ГРУППА ПО ...

-1
LuckyLuke 19 Дек 2020 в 00:03

1 ответ

Лучший ответ

Переход с INNER JOIN на LEFT JOIN дает желаемые результаты. Запрос:

SELECT * 
FROM competitions c
LEFT JOIN 
  (SELECT competitionId, SUM(quantity) AS quantity  
  FROM tickets GROUP BY competitionId
  ) t ON t.competitionId = c.id
WHERE 
  c.winnerId IS NULL AND 
  (t.quantity=c.maxEntries OR CURRENT_TIMESTAMP() >= c.endAt)
0
LuckyLuke 18 Дек 2020 в 21:55