多表连接
- 内连接 - a.相等连接(inner join) - 1)等值连接:通过相同的字段值连接起来的查询,不去除重复【列】,注意连接依据为null,null不与任何值匹配,包括null本身(即null != null)无比较性 - select * from emp inner join dept on emp.deptno= dept.deptno; - select * from emp,dept where emp.deptno = dept.deptno - 2)不等连接: 使用比较运算符作为连接依据 - select * from emp inner join dept on emp.age >23; - select * from emp,dept where emp.age >23; - b.自然连接(natrual join):将两表【所有】列名相同的字段的进行比较,只保留一列属性列 - select * from emp natrual join dept; 
- 外连接(outer join) - a.左外连接(left outer join):以关键字左边表为主,查询右表无记录则null,左表数据为总数 - select * from emp left join dept on emp.deptno = dept.deptno; - b.右外连接(right outer join):以关键字右表为主,查询左表无记录则为null,右表数据为总数 - select * from emp right join dept on emp.deptno = dept.deptno; - c.全外连接(full outer join):左外连接和右外连接的并集 - select * from emp full join dept on emp.deptno = dept.deptno; 
- 笛卡儿积(cross join):也称交叉连接,两表行记录一一匹配查询 - select * from dept cross join emp; - select * from dept,emp; 
- 自连接:既可以使用内连接也可以使用外连接 - select * from emp e1 left join emp e2 on e1.empno = e2.mrg 
- 连接符(union/union all):将所有列名一致的所有表进行合并 - 两者的区别只在于是否去除重复【行】 - select * from emp left join dept on dept.deptno = emp.deptno union (select * from emp rgint join dept on dept.deptno = emp.deptno); 
 
		 随时随地看视频
随时随地看视频 
				 
				 
				 
				