【问题标题】: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_id、employee_name 和manager_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