我想检索在parent_albumid上找不到albumid且parent_albumid为NULL的记录
示例:
albumid name parent_albumid
------------------------------------------------------
145 sun NULL
146 fly 145
148 ok NULL
149 mama 148
150 test NULL
在上面的示例中,albumid 145和148位于parent_albumid中,因此没有。记录146和149有一个parent_albumid,所以有... .... albumid 150是剩下的一个,应该由结果集返回的那个
我能够使用自联接查询进行实验,但这对我没有任何帮助!
SELECT a.albumid, a.name, a.parent_albumid
FROM album AS a
JOIN album AS b on a.albumid = b.parent_albumid
如何创建自我加入查询?
答案 0 :(得分:2)
有很多方法可以做到这一点,但这里有一个:
SELECT a.albumid
FROM album a
WHERE
parent_albumid IS NULL
AND NOT EXISTS (
SELECT 1
FROM album
WHERE parent_albumid = a.albumid
)
这是另一个(我更喜欢第一个表示更好的意图):
SELECT a1.albumid
FROM album a1
LEFT JOIN album a2
ON a2.parent_albumid = a1.albumid
WHERE a1.parent_albumid IS NULL AND a2.albumid IS NULL