我需要在同一张表中获取无子邮件
ID parent_id body
1 NULL my first comment (parent)
2 1 my reaction on first comment (child)
3 NULL comment without reactions
如您所见,消息与parent_id相关。 我该如何让没有任何孩子的父母。所以我的结果是
ID parent_id body
3 NULL comment without reactions
我尝试了一些东西,但无法弄清楚。就像在选择中选择。在stackoverflow上,我可以找到一些示例,但大多数示例来自2个表,而不是同一表。也许我有雾。有人可以帮我吗?
答案 0 :(得分:4)
尝试使用NOT EXISTS
子句,该子句断言给定记录没有父并且没有子:
SELECT *
FROM yourTable t1
WHERE
t1.parent_id IS NULL AND
NOT EXISTS (SELECT 1 FROM yourTable t2 WHERE t2.parent_id = t1.ID);
答案 1 :(得分:2)
SELECT *
FROM table1
WHERE parent_id IS NULL
AND id NOT IN (
SELECT parent_id
FROM table1
WHERE parent_id IS NOT NULL
)