如何从一个表中选择另一个表中没有匹配的行(但有多个)

时间:2014-10-24 22:28:49

标签: select join

我试过这个:

SELECT *
FROM   svc00100
WHERE  NOT EXISTS (SELECT *
                   FROM   svc00101
                   WHERE  TECHSTAT = 'INA'
                          AND svc00100.TECHID = svc00101.TECHID) 

我想从svc00100中选择行,但如果svc00101中有一行具有相同的TECHID且TECHSTAT =' INA'则不行。但是,svc00101中有多行与TECHID匹配,有些具有' INA'还有一些有其他的东西。我想消除/忽略任何TECHID,其中svc00101中有TECHID和' INA'对于techstat。如果有帮助,请使用SQL服务器BTW。

1 个答案:

答案 0 :(得分:1)

您可以使用left outer join和Where子句。像这样:

select svc00100.* from svc00100 
left outer join svc00101 on TECHSTAT = "INA" 
                            and svc00100.TECHID = svc00101.TECHID 
where svc00101.KEY is null

而不是KEY,你应该传递NOT NULL列的名称。例如主键。