Sql server 自连接SQL查询

Sql server 自连接SQL查询,sql-server,join,sql-server-2005,sql-server-2008-r2,Sql Server,Join,Sql Server 2005,Sql Server 2008 R2,在一次采访中,以下问题被问及,但无法提供适当的答案 问题1: 如果我有一个包含员工id和经理的表,我希望以以下格式显示该表,其中包含员工姓名和经理。(员工id 1的经理为空。您只需要使用自联接。) 问题2:如果我对内部联接、右外部联接和左外部联接得到相同的结果,那么该表有什么类型的内容?(我没有得到这个问题的任何样本数据。他让我假设) 有人能帮我找到答案吗?问题1:这是用左连接完成的: select t1.name, t2.name as manager from tablename t1 l

在一次采访中,以下问题被问及,但无法提供适当的答案

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

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


有人能帮我找到答案吗?

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

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

问题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
不太确定我是否理解第二个问题


第二个问题的答案是每个人都有一个管理器(所以没有空值)。在这种情况下,无论联接类型如何,结果都是相同的。

我使用左联接获得了O/p,但无法使用自联接进行查询。同样对于问题,请不要将表结构作为参考。如果所有联接都给出相同的结果,那么该表包含什么类型的数据?呃…这是自联接,表本身联接。我可以使用自联接吗?问题1和问题2之间并没有联系,当你们连接表本身时,它是selfjoin。是的,你能做到。