在日常数据查询应用实践中,需要获取的数据来源于三张表以上,此时需要通过多表连接进行查询。
例如:
案例1:获取所有非空调车的车牌号,型号和司机姓名,所属线路的线路号,起点站和终点站信息
select d.name 司机姓名,v.plateNo 车牌号,v.model 型号,l.lineNo 线路
号,l.from_station 起点站, l.end_station 终点站
from vehicle v
JOIN driver d ON v.driverID=d.driverID
JOIN line l ON l.lineID=v.lineID
WHERE type='非空调车';
案例2:找出每一个员工的部门名称、工资等级、以及上级领导。
select e.ename ‘员工’,d.dname,s.grade, e1.ename ‘领导’
from emp e
join dept d on e.deptno=d.deptno
join salgrade s on e.sal between s.loasl and s.hisal
left join emp e1 on e.mgr=e1.empno;
注意:①e与e1其实是同一张表,把一张表看出两张表。
②left不能放在第一个join的前面,若放在第一个join前面表示emp是主表,dept是从表。
③考虑清楚是否该用外连接。