我需要一个SQL查询来查找父记录而没有任何子记录。子记录和父记录都在同一个表中
答案 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)