在MySQL中加入同一个表?

问题描述

| 我有下表,每个员工都有一个经理,如果一个人是他自己的经理,而managerid字段为null,我想要want0ѭ,因为结果表名称是employee
emid name managerid
1    raj  null
2    ram   1
3    ravi   null
4    arvind  3
5    rithu   2
我想要的结果是
emid name managername
1    raj  raj
2    ram   raj
3    ravi   ravi
4    arvind  ravi
5    rithu   ram
    

解决方法

SELECT e1.emid,e1.name,COALESCE(e2.name,e1.name) AS managername
    FROM employee e1
        LEFT JOIN employee e2
            ON e1.managerid = e2.emid
    ,未测试:
select a.name as name,b.name as managername from employee a inner join employee b on a.managerid=b.emid
这只会产生实际有经理的员工。但是,这就是您如何对自己的表进行联接。     ,
select
      e1.emid,e1.name ) ManagerName
   from 
      employees e1
         left join employees e2
            on e1.managerid = e2.emid
    ,
SELECT emid,name,CASE WHEN s.managerid IS NULL THEN s.name ELSE m.name END managername
  FROM employees s
  LEFT JOIN employees m ON s.managerid = m.managerid
要么
SELECT emid,m.name managername
  FROM employees s
  LEFT JOIN employees m ON COALESCE(s.managerid,s.emid) = m.emid