前面我们讲解的mysql表的查询都是对一张表进行查询,在实际开发中这远远不够。
1.多表查询
实际开发中往往数据来自不同的表,所以需要多表查询。本节我们用一个简单的公司管理系统,有三张表EMP,DEPT,SALGRADE来演示如何进行多表查询。
示例:
•显示雇员名、雇员工资以及所在部门的名字因为上面的数据来自EMP和DEPT表,因此要联合查询
其实我们只要emp表中的deptno = dept表中的deptno字段的记录
select EMP.ename, EMP.sal, DEPT.dname from EMP, DEPT where EMP.deptno = DEPT.deptno;
• 显示部门号为10的部门名,员工名和工资
select ename, sal,dname from EMP, DEPT where EMP.deptno=DEPT.deptno and DEPT.deptno= 10;
• 显示各个员工的姓名,工资,及工资级别
select ename, sal, grade from EMP, SALGRADE where EMP.sal between losal and hisal;
2.自连接
自连接是指在同一张表连接查询
示例:
显示员工FORD的上级领导的编号和姓名(mgr是员工领导的编号–empno)
• 使用的子查询
select empno,ename from emp where emp.empno=(select mgr from emp where
ename='FORD');
• 使用多表查询(自查询)