Мне нужно вернуть только те соревнования, которые имеют рейтинг, этот рейтинг находится внутри таблицы league_ranking
, и каждое соревнование связано с колонкой round_id
.
По сути, запрос должен возвращать все соревнования определенной страны, при условии, что все соревнования этой страны должны иметь рейтинг, поэтому я сделал:
SELECT c.name AS competition_name,
c.id AS competition_id
FROM competition c
JOIN competition_seasons s ON s.competition_id = c.id
JOIN competition_rounds r ON r.season_id = s.id
LEFT JOIN league_ranking l ON l.round_id = r.id
WHERE c.country_id = :country_id AND l.round_id IS NULL
GROUP BY c.id
ORDER BY c.name ASC
Этот запрос также возвращает конкуренцию, которая не имеет рейтинга, например:
Конкурс
id | country_id | name
202 12 Cup
competition_seasons
id | competition_id | name
955 202 2018/2019
competition_rounds
id | season_id |
2122 955
league_ranking
нет записей за этот раунд
Запрос выше также вернет соревнование 202
, что я сделал не так?