2013-12-10 107 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' –