【问题标题】:SQL query to get the employee name and their manager name from the same table从同一个表中获取员工姓名和经理姓名的 SQL 查询
【发布时间】:2019-02-13 13:46:20
【问题描述】:

员工表

Employee_id  Employee_name   Manager_id
-------------------------------------
Emp00001     Ram             Emp00005
Emp00002     Sharath         Emp00003
Emp00003     Nivas           Emp00005
Emp00004     Praveen         Emp00002
Emp00005     Maharaj         Emp00002

输出

Employee Name    Manager Name
------------------------------
Ram              Maharaj
Sharath          Nivas
Nivas            Maharaj
Praveen          Sharath
Maharaj          Sharath

employee 表中,有Employee_idemployee_namemanager_id 三列。从表中,如何获取员工姓名和经理姓名?

【问题讨论】:

标签: sql sql-server select


【解决方案1】:

朋友们好,请查看以下解决方案。

这是结果截图:

这是查询:

SELECT e.employee_name,m.Employee_name FROM   EmpTable e 
    INNER JOIN EmpTable m 
            ON M.Employee_id =e.manager_id

【讨论】:

    【解决方案2】:

    从员工中选择 *


    select e1.empname,e2.empname  as managername,e1.salary,
    e1.mrg,e1.empno,e1.job,e2.mrg as BossMRG from employee e1
    join
    employee e2 on e1.mrg=e2.empno
    left join 
    employee e3 on e1.mrg=e3.empno and e3.job='manager' or e3.empno=e2.mrg
    

    【讨论】:

      【解决方案3】:

      使用下面的查询,您可以在此处获取 Employeename 和 ManagerName 我只有一个表 EmpMgr: 选择 e.employeename 作为 ename ,e.managerid 作为 mgrid ,e1.employeename 作为 managername from EmpMgr e join EmpMgr e1 on e.managerid=e1.employeeid

      注意:无论经理姓名如何,您都可以使用左连接获取所有员工姓名

      选择 e.employeename 作为 ename ,e.managerid 作为 mgrid ,e1.employeename 作为 managername from EmpMgr e left join EmpMgr e1 on e.managerid=e1.employeeid

      【讨论】:

        【解决方案4】:

        必填表:- 员工。

        查询:-

        SELECT e.Employee Name,
               e.Employee Name as Manager Name
          FROM Employee e JOIN Employee m 
            ON e.Employee id = m.Manager id
        

        解释:-

        通过给出这个条件“Employee e JOIN Employee m”,它会自动将单个表视为两个不同的表“e”和“m”,然后将表 e 中的 Employee id 与表 m 的经理 id 进行比较。 每当它找到两个 ID 相同的匹配项时,就会将其添加到结果中。

        【讨论】:

          【解决方案5】:

          请试试这个

          SELECT employee_name AS Employee_Name,(SELECT employee_name FROM   employee  where
          employeeid=ManagerID ) AS Manager_Name  FROM   employee 
          

          【讨论】:

            【解决方案6】:

            希望管理器表可以在您的数据库中使用

            SELECT employee_name, M.manager_name
            FROM   employee e
            INNER JOIN tableManager M ON e.ManagerID = M.MangerID
            

            【讨论】:

              【解决方案7】:

              您可以自行加入表以从经理的 ID 中获取经理的姓名:

              SELECT e.employee_name, m.employee_name AS manager_name
              FROM   employee e
              JOIN   employee m on e.manager_id = m.employee_id
              

              【讨论】:

                猜你喜欢
                • 2022-11-18
                • 2017-01-07
                • 1970-01-01
                • 1970-01-01
                • 2022-12-12
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多