SQL Query查找没有子记录的父记录。子记录和父记录在同一个表上

时间:2012-09-11 05:32:54

标签: sql parent-child

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

假设:" mytable"是你的表,parent_id是对父PK的引用,顶级父母有一个null parent_id:

SELECT * FROM mytable
WHERE id IN (SELECT parent_id FROM mytable WHERE parent_id IS NOT NULL)

答案 2 :(得分:0)

你可以尝试这个:

SELECT * FROM Nodes N
WHERE NOT EXISTS (SELECT ID FROM Nodes WHERE Nodes.ParentID = N.ID)