【问题标题】:In SQL if a table have have colums empid,emp,salary,managerid.....Then how we will find a result with colums as employee name, manager name, salary在 SQL 中,如果一个表有列 empid,emp,salary,managerid.....那么我们将如何找到以列作为员工姓名、经理姓名、工资的结果
【发布时间】:2012-02-20 23:35:54
【问题描述】:

如果您在下面的结构中给出了表格。

empid | empname | salary | managerid

你将如何找到结果

empid | empname | salary | managername

因为经理也是员工的一部分

【问题讨论】:

    标签: asp.net sql sql-server-2005


    【解决方案1】:

    您可以进行自联接,将第一个表(员工)的ManagerId 链接到第二个使用员工(经理)的EmpId

    SELECT e.empid, e.empname, e.salary
       , COALESCE(m.empname, 'NoManager') AS ManagerName
    FROM Employee AS e
    LEFT JOIN Employee AS m ON e.ManagerId = m.empId
    

    【讨论】:

    • 单独的“内部联接”不起作用,因为如果员工没有经理,则不会显示该员工。
    • @EmmadKareem 好点,谢谢。我已更新为使用LEFT JOIN
    • 谢谢 .. 真的很有帮助
    【解决方案2】:
    SELECT
     x.empid,
     x.empname as 'EmployeeName',
     x.salary as 'Salary',
     (SELECT empname FROM Tablename WHERE empid = x.managerid) as 'ManagerName'
    FROM
     Tablename x
    

    【讨论】:

    • 谢谢 .. 真的很有帮助
    猜你喜欢
    • 2017-01-07
    • 2019-02-13
    • 1970-01-01
    • 2022-12-12
    • 2021-12-29
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多