2013-06-25 25 views
2

我正在使用sql server 2008.我有三個表tableA,tableB和表C.在表A中,我有兩列一個是Employeeid,另一個是Projectid。在表B中,我有兩列,一個是employeeid,另一個是employeeid一個是Employeename。在表C中,我有兩列,一列是項目名稱,另一列是項目名稱。如何在sql server 2008中顯示非常見的行?

我用下面的查詢來顯示來自表A和表B中(不匹配的僱員)

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

我想除了EMPLOYEEID也顯示項目名稱非公共的行。 即)我需要這樣的:

Employeeid|projectname 
    1   |ABC 
    2   |XYZ 

誰能告訴我如何做到這一點使用SQL Server 2008?

+0

傳統的「非普通」(意爲「不*在*通用」)在這裏使用的術語,而不是「罕見」(這通常意味着「不常見」)。 – RBarryYoung

回答

5

我只想用這一個NOT EXISTS

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) 
+0

:我想要在表c中的項目名稱。 – Marsh

+0

@Marsh看到編輯。這是一個簡單的加入 – JNK

+0

:謝謝你jnk.it工作正常。 – Marsh

相關問題