【问题标题】:self join-SQL -Query自连接 SQL 查询
【发布时间】:2016-02-03 23:29:27
【问题描述】:

在采访中提出了以下问题,但无法提供适当的答案。

问题 1: 如果我有一个包含员工 ID 和经理的表格,我想以下面的格式显示它,其中包含员工姓名和经理。(员工 ID 1 的经理为空。您只需要使用自加入)

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

谁能帮我找出答案?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 我可以使用自我加入吗?问题1和2之间没有联系
    • 当你自己加入表时,它是自加入的。是的,你可以这样做。
    【解决方案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 值)。在这种情况下,无论连接的类型如何,结果都是一样的。

    【讨论】:

    • 我使用左连接获得了 O/P,但无法使用自连接进行查询。还有问题请不要以表格结构作为参考。如果所有连接都给出相同的结果,该表包含什么类型的数据?
    • Err...这是一个自连接,表连接到自己。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    相关资源
    最近更新 更多