从2个表中连接数据

时间:2011-10-05 11:54:42

标签: sql sql-server join

我正在使用adventureworks示例数据库。

我有一张员工的桌子,所有人都有一位经理。因此,在表employee中有一列ManagerID。

此外,在员工表中还有一个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

所以我需要一个managerID的DISTINCT列表,然后搜索每个managerID他们的appropreate ContactID。

所以: 员工1的经理是具有ContactID 34的员工4。 员工3的经理是具有ContactID 44的员工7。 员工4的经理是具有ContactID 24的员工2。

感谢。

2 个答案:

答案 0 :(得分:2)

你可以加入表myTable,并将manager_id与employee_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

答案 1 :(得分:-1)

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

您可以获得分组数据。 如果您还希望列出管理员,则必须再次加入数据(自行加入)