我有两张桌子
我想抓住表albums
中没有任何条目的所有事件。
我知道如何做到这一点来完成所有的事情:
SELECT id, title FROM events e
INNER JOIN albums a ON (e.id = a.eID)
我怎样才能完全相反,所以它列出了所有在相册中的eID中没有ID的行?
答案 0 :(得分:4)
SELECT id, title
FROM events e
WHERE NOT EXISTS (SELECT NULL FROM albums a WHERE a.eid = e.id)
您也可以LEFT JOIN
并检查NULL
,但EXISTS通常会更快地运行。
答案 1 :(得分:0)
我倾向于使用这种方法:
select id, title
from events
where id not in (select id from albums)
还有外连接方式:
select a.id, a.title
from events a left outer join albums b on a.id = b.id
where b.id is null