self join-SQL -Query

时间:2015-11-03 17:26:27

标签: sql-server join sql-server-2005 sql-server-2008-r2

在一次采访中,以下问题被提出并且无法提供适当的答案。

问题1: 如果我有一个带有员工ID和经理的表我希望以下面的格式显示员工姓名和经理。(员工ID 1经理为空。 您只需要使用自联接

问题2:如果我有内部连接,右外连接和左外连接获得相同的结果表有什么类型的内容?(我没有得到这个问题的任何样本数据。他让我假设)

enter image description here

任何人都可以帮我找到答案吗?

2 个答案:

答案 0 :(得分:2)

问题1:这是通过左连接完成的:

select t1.name, t2.name as manager
from tablename t1
left join tablename t2 on t1.manager = t2.id

问题2:例如,这些表可以为空,或者在连接的列和相同的行数中包含相同的数据。

答案 1 :(得分:2)

在我的头脑中,对问题1的回答如下:

select emp.id,emp.name,emp.department,emp.salary,m.id as manager
from employee emp
left join employee m on m.id=emp.managerid

我不太清楚我理解第二个问题......

对第二个问题的回答是每个人都有一个经理(所以没有NULL值)。在这种情况下,无论连接类型如何,结果都是相同的。