2011-10-05 42 views
0

我正在開發Adventureworks示例數據庫。加入來自2個表格的數據

我有一張僱員表,裏面都有一位經理。所以在員工的表中有一個列ManagerID。

另外在表格employee中有一個ContactID,其中包含該員工的姓名。

我想列出所有經理和他們的名字。我該如何解決這個問題?

表看起來像

EmployeeID ContactID ManagerID 
---------- --------- --------- 
    1   21   4 
    2   24   4 
    3   32   7 
    4   34   2 
    5   35   2 
    6   42   7 
    7   44   4 

因此我需要的經理ID的不同列表,然後搜索每個經理ID的appropreate的ContactID。

所以:僱員1 經理是僱員4僱員3的的ContactID 34. 管理器被員工7與44的ContactID經理 僱員4是僱員2與的ContactID 24.

由於。

回答

2

你可以做到這一點加入表myTable與自身相匹配的manager_id與僱員標識的

select 
    t.employeeid as employee_id, 
    t.manager_id as manager_id, 
    t2.contact_id as manager_contact_id 
from mytable t left outer join mytable t2 on t.managerid = t2.employeeid 
+0

謝謝,這樣做了! – Tjekkles

-1
SELECT ManagerID, EmployeeID, ConactID 
FROM ´yourtable´ 
GROUP BY ManagerID 

有你得到的分組數據。 如果你想要管理員列出以及你必須再次加入數據(自我加入)

+0

這仍然給出Employee的ContactID,而不是它的管理器 – Tjekkles

+0

-1,您忘記了加入。 – Johan