3

我正在使用sql server 2008。我有三个表tableA,tableB和表C。在表A中,我有两列,一列是Employeeid,另一列是Projectid。在表B中,我有两列,一是employeeid,另一列是Employeename. 在表 C 中,我有两列,一列是 projectid,下一列是项目名称。

我使用以下查询来显示表 A 和表 B 中的非常见行(Unmatched Employeeid)

   SELECT A.EmployeeID FROM A 
   EXCEPT
   SELECT B.EmployeeID FROM B

除了 Employeeid 之外,我还想显示项目名称。即)我需要这样:

    Employeeid|projectname
    1         |ABC
    2         |XYZ

谁能告诉我如何使用 sql server 2008 做到这一点?

4

1 回答 1

5

我会NOT EXISTS为此使用 a :

SELECT A.EmployeeID, C.ProjectName
FROM A
INNER JOIN C
    ON A.ProjectID = C.ProjectID
WHERE NOT EXISTS (SELECT 1 FROM B WHERE EmployeeID = A.EmployeeID)
于 2013-06-25T12:21:13.463 回答