加入等于Not IN子句的查询(SQL Server 2008)

时间:2013-11-08 18:55:54

标签: sql sql-server sql-server-2008

我有一个not in子句的查询,如下所示:

select * 
FROM COMPANY c 
where c.company_id not In (SELECT SenderId 
                            FROM CrossRef) 
  and c.id not in (select company_id 
                    FROM USER)

我想知道是否有办法在SQL Server 2008中使用左连接重写该查询。

我尝试了下面的一个,但它没有给出正确的结果

select c.id, c.company_id 
from COMPANY c 
left join CrossRef cr on c.company_id != cr.senderid, COMPANY c1 
left join USER u on c1.id != u.company_id

1 个答案:

答案 0 :(得分:6)

SELECT *
FROM Company C
LEFT JOIN CrossRef R ON R.SenderID = C.CompanyID
LEFT JOIN [User] U ON U.company_id = C.id
WHERE R.SenderID IS NULL
  AND U.company_id IS NULL