2013-12-10 142 views
-1

我有一個要求,其中我必須標識沒有對應的孩子記錄的父母記錄。例如,沒有孩子的父母sql

父表有6個記錄:A,B,C,d,E,F
兒童表1具有參考:A,B
兒童表2具有參考:C,d

因此,如何我應該形成我的查詢,它會返回結果E和F.因爲這兩個值都不在任何子表中使用。

回答

1

這缺乏一個強制性示例的一些信息,但我認爲你有childTable1和childTable2中的parentID,並在parentTable中的id。

這應該工作:

SELECT * 
FROM parentTable p 
WHERE NOT EXISTS(
       SELECT 1 
       FROM childTable1 c1 
       WHERE c1.parentId = p.id) 
    AND NOT EXISTS(
       SELECT 1 
       FROM childTable2 c1 
       WHERE c1.parentId = p.id) 
+0

感謝菲利普。它工作 – Sahil

+0

如果你想驗證多個列,你可以添加另一個驗證到WHERE子句:'OR c1.anotherCol = p.id' –