2012-03-08 113 views
0

獲取沒有孩子的父母ID列表的最佳方式是什麼?沒有父母的sql列表記錄

CREATE TABLE parent (
    ID PRIMARY KEY AUTO INCREMENT 
); 

CREATE TABLE child (
    ID PRIMARY KEY AUTO INCREMENT 
    ParentID INT NOT NULL 
); 

回答

4

這是一種方式:

SELECT P.ParentID 
FROM dbo.Parent P 
LEFT JOIN (SELECT DISTINCT ParentId FROM child) C 
ON P.ParentId = C.ParentId 
WHERE C.ParentID IS NULL 

這是另一種方式:

SELECT P.ParentID 
FROM dbo.Parent P 
WHERE NOT EXISTS (SELECT * FROM dbo.Child WHERE ParentId = P.ParentID) 
2
select id from parent 
where id not in (select distinct parentid from child) 
1

根據您的SQL的味道:

select ID from parent minus select ParentID from child 
1
Select Parent ID 
from Parent 
where ParentID NOT IN Select distinct ParentID from ChildTable 

這會工作:)

相關問題