老师,想问下2个sql哪个更好点?虽然都能出结果,效率差距大吗?
来源:3-7 实战:表的外连接
慕仙9331815
2020-07-15 10:38:09
#查询每名员工的编号、姓名、部门、月薪、工资等级、工龄、上司编号、上司姓名、上司部门 SELECT e.empno,e.ename,d.dname,e.sal + IFNULL(e.comm,0),s.grade,FLOOR(DATEDIFF(NOW(),e.hiredate)/365),e2.empno,e2.ename,d2.dname FROM t_emp e LEFT JOIN t_dept d ON e.deptno = d.deptno LEFT 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 LEFT JOIN t_dept d2 ON e2.deptno = d2.deptno ; SELECT e.empno,e.ename,d.dname,e.sal + IFNULL(e.comm,0),s.grade,FLOOR(DATEDIFF(NOW(),e.hiredate)/365),t.empno,t.ename,t.dname FROM t_emp e LEFT JOIN t_dept d ON e.deptno = d.deptno LEFT JOIN t_salgrade s ON (e.sal + IFNULL(e.comm,0)) BETWEEN s.losal AND s.hisal LEFT JOIN (SELECT e1.empno,e1.ename,d1.dname FROM t_emp e1 JOIN t_dept d1 ON e1.deptno = d1.deptno) t ON e.mgr = t.empno
1回答
好帮手慕笑蓉
2020-07-15
同学,你好。这两个sql语句在效率是差不多的,都是可以的,相比之下,第一个sql语句逻辑比较简单没有其他的select查询语句,所以可以选择第一个sql语句
如果解决了你的疑惑,请采纳,祝学习愉快~
相似问题
回答 1
回答 1