0

我需要一个 SQL 查询来查找没有任何子记录的父记录。子记录和父记录都在同一个表上

4

3 回答 3

1

如下表中的一个SELF JOIN将给没有孩子的父母。

-- relations (record_id, parent_id)
SELECT parents.record_id 
FROM 
    relations parents
    LEFT JOIN relations children
    ON parents.record_id = children.parent_id
WHERE 
    children.record_id IS NULL
于 2012-09-11T05:43:55.820 回答
0

假设:“mytable”是您的表,parent_id 是对父级 PK 的引用,顶级父级的 parent_id 为空:

SELECT * FROM mytable
WHERE id IN (SELECT parent_id FROM mytable WHERE parent_id IS NOT NULL)
于 2012-09-11T05:42:34.093 回答
0

你可以试试这个:

SELECT * FROM Nodes N
WHERE NOT EXISTS (SELECT ID FROM Nodes WHERE Nodes.ParentID = N.ID)
于 2012-09-11T05:42:48.130 回答