数据库的高级查询中,下面加粗的2两个LEFT有什么意义呢?不写好像记录总数没变。

来源:4-7 数据操作语言:表连接查询(四)

童真模式启动

2021-08-15 12:23:42

#查询每名员工的编号 、姓名、部门、月薪、工资等级、工龄、上司编号、上司姓名、上司部门?

SELECT 

e.empno,e.ename,d.dname,

e.sal+IFNULL(e.comm,0),s.grade,

FLOOR(DATEDIFF(NOW(),e.hiredate)/365),

t.empno AS mgrno,t.ename AS mname,t.dname AS mdname

FROM t_emp e LEFT JOIN t_dept d ON e.deptno=d.deptno 

LEFT JOIN t_salgrade s ON e.sal 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回答

好帮手慕小班

2021-08-15

同学你好,left  join表示使用左外连接-->以左表为主表所有数据全部展示,右表(副表)中无匹配的数据时字段值自动补NULL。

    ​而当同学去掉这个left关键字后,就表示的不是左外连接了,而是inner  join  内连接了,因为内连接可以不写inner关键字。

所以这里如果需要使用左外连接(以左表为所有数据全部展示)的情况下,建议同学正确使用关键字left join。

祝学习愉快~

0

0 学习 · 9886 问题

查看课程