-- 查询每名员工的编号、姓名、部门、月薪、工资等级、工龄、上司编号、上司姓名、上司部门? SELECT e.empno,#员工编号 e.ename,#员工姓名 e.deptno,#员工部门 e.sal + IFNULL(e.comm, 0) AS income,#月薪 DATEDIFF(NOW( ), e.hiredate) / 365 AS seniority,#工龄 s.grade,#工资等级 e.mgr,#上司编号 e2.ename AS mgrname,#上司姓名 d.dname #上司部门 FROM t_emp e #员工表e JOIN t_salgrade s ON (e.sal + IFNULL( e.comm, 0 )) BETWEEN s.losal AND s.hisal #与工资等级表关联 LEFT JOIN t_emp e2 ON e.mgr = e2.empno #与员工表e2关联,获取上司信息,因为King没有上司,为保留完整信息,采取左连接 LEFT JOIN t_dept d ON e2.deptno = d.deptno; #与部门表d关联,获取上司部门信息,因为陈浩没有部门编号,为保留完整信息,采取左连接