SQL:从表中选择不存在于不同表中的数据

时间:2014-07-30 07:22:22

标签: sql sql-server-2008

在一张表中,我有以下数据:

enter image description here

作为查询的结果,我希望拥有没有支持合同的所有合同(CONH%)。 在这种情况下,它应该返回'CONHMIG0002'。

我尝试了以下查询,但它返回零结果:

SELECT Projectnr
FROM PRProject
WHERE Projectnr LIKE 'CONH%' AND NOT EXISTS (
    SELECT DISTINCT Parentproject
    FROM PRProject
    WHERE Projectnr LIKE 'CONS%')

我做错了什么?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

使用NOT IN代替EXIST。这样,您就可以轻松过滤出仅对外部查询唯一的值

试试这个:

SELECT Projectnr
FROM PRProject
WHERE Projectnr LIKE 'CONH%' AND Projectnr NOT IN (
    SELECT DISTINCT Projectnr --Parentproject
    FROM PRProject
    WHERE Projectnr LIKE 'CONS%')