使用:SQL Server 2012的SQL自联接结果中的主要结论(未单独列)
我有一个自引用表称为Department
这样的:
DepartmentID | Name | DepartmentParentID
1 Sales NULL
2 Outbound 1
3 Inbound 1
4 Showroom 1
的部门,如Inbound
和Showroom
有一个Sales
的父系。
我现在需要写一个SQL查询来显示哪些用户在哪个部门。事情是这样的:
SELECT
d.DepartmentID, d.DepartmentName, d2.DepartmentParentID, d2.DepartmentName
FROM
[User_Department] ud ---table that maps users to departments
INNER JOIN
[Department] d1 ON d1.DepartmentID = ud.DepartmentID
LEFT JOIN
[Department] d2 ON d2.DepartmentID = d1.DepartmentParentID ---this has gone horribly wrong
WHERE
ud.Username = @Username
忘记了LEFT JOIN在上面的代码中的一部分,现在,我会得到这样的结果:
Username | DepartmentName
DannySmith Inbound
DannySmith Outbound
但我需要的是上级部门也表现出在DepartmentName的列表(这就是我想要的):
Username | DepartmentName
DannySmith Sales
DannySmith Inbound
DannySmith Outbound
这是如何实现的可能。我不希望上级部门要在这样一个单独的列(这是我不希望):
Username | DepartmentName | DepartmentName
DannySmith Inbound Sales
DannySmith Outbound Sales
一直在试图查看某些SQL的书籍,但无法找到任何东西那可以帮助我至今。请人吗?
哪个部门'Dany Smith'映射到你的'User_Department'表中? –