Как выбрать записи, в которых никакие связанные записи в другой таблице не являются нулевыми? - PullRequest
0 голосов
/ 07 августа 2020

У меня есть следующее SQL:

SELECT tournaments_blg.tournament_id_blg
FROM matches_blg  LEFT JOIN tournaments_blg ON tournaments_blg.tournament_id_blg = matches_blg.tournament_id_blg
WHERE matches_blg.match_id_op IS NULL
GROUP BY tournaments_blg.tournament_id_blg

Это выбирает все tournaments_blg.tournament_id_blg, где любой из matches_blg.match_id_op равен NULL.

Как бы мне выбрать только все tournaments_blg.tournament_id_blg, если ВСЕ matches_blg.match_id_op равны NULL?

Ответы [ 2 ]

1 голос
/ 07 августа 2020
SELECT tb.tournament_id_blg
FROM tournaments_blg tb
LEFT JOIN matches_blg mb ON tb.tournament_id_blg = mb.tournament_id_blg 
                        AND mb.match_id_op IS NOT NULL
WHERE mb.tournament_id_blg IS NULL

или

SELECT tb.tournament_id_blg
FROM tournaments_blg tb
WHERE NOT EXISTS ( SELECT NULL
                   FROM matches_blg mb 
                   WHERE tb.tournament_id_blg = mb.tournament_id_blg 
                     AND mb.match_id_op IS NOT NULL )
0 голосов
/ 07 августа 2020

Попробуйте следующее:

SELECT tournaments_blg.tournament_id_blg FROM matches_blg WHERE matches_blg.match_id_op NOT IN (Select tournaments_blg from tournaments_blg )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...