# 如emp表中张三是一个零时工, deptno为NULL, 我们希望保留NULL# 查询所有员工和其对应的部门名称SELECTe.ename, d.dnameFROM t_emp e LEFT JOIN t_dept d ON e.deptno=d.deptno; # 也可以交换JOIN表格的顺序,换成 右外连接 效果相同SELECTe.ename, d.dnameFROM t_dept d RIGHT JOIN t_emp e ON e.deptno=d.deptno;
# UNION# 查询每个部门的名称和部门的人数# 如果没有部门的员工,部门名称用NULL代替(t_emp LEFT JOIN t_dept)# 如果部门没有人也希望显示出来,人数为0(t_emp RIGHT JOIN t_dept)(SELECTd.dname , COUNT(*)FROM t_emp e LEFT JOIN t_dept dON e.deptno=d.deptno GROUP BY d.deptno)UNION(SELECTd.dname , COUNT(*)FROM t_emp e RIGHT JOIN t_dept dON e.deptno=d.deptno GROUP BY d.deptno);