首页 > 解决方案 > 如何选择另一个表中没有链接记录为空的记录?

问题描述

我有以下 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

标签: mysqlsql

解决方案


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 )

推荐阅读