表的准备:
员工表:emp表(A表)
部门表:dept表(B表)
第一种:内连接
sql语句:SELECT * FROM emp a INNER JOIN dept b ON a.deptno=b.deptno
查询结果:
结论:就是把两者共有的部分查出来
第二种:左外连接
sql语句:SELECT * FROM emp a left JOIN dept b ON a.deptno=b.deptno
查询结果:
结论:主要是查A表,如果B中有满足条件的就查出来,没有就用null填充
第三种:右外连接
sql语句:SELECT * FROM emp a right JOIN dept b ON a.deptno=b.deptno
查询结果:
结论:主要查B表,如果A表中有满足条件的就查出来,没有就用null来填充
第四种:左连接
sql语句:SELECT * FROM emp a LEFT JOIN dept b ON a.deptno=b.deptno WHERE b.deptno IS null
查询结果:
结论:查出A,B两张表中A独有的数据
第五种:右连接
sql语句:SELECT * FROM emp a Right JOIN dept b ON a.deptno=b.deptno WHERE a.empno IS null
查询结果:
结论:查出A,B两张表中B独有的数据
第六种:全连接
sql语句:
select * from emp a left join dept b on a.deptno = b.deptno (找出A表的所有数据)
union (连接并去重)
select * from emp a right join dept b on a.deptno = b.deptno (找出B表的所有数据)
查询结果:
结论:找出A表和B表的所有数据(A表的独有和B表的独有以及A,B表公有的部分)
第七种:全外连接
sql语句:
SELECT * FROM emp a LEFT JOIN dept b ON a.deptno = b.deptno WHERE b.deptno IS NULL (找出A表中独有的数据)
UNION (连接)
SELECT * FROM emp a RIGHT JOIN dept b ON a.deptno = b.deptno WHERE a.deptno IS NULL (找出B表中独有的数据)
查询结果:
结论:找出A表和B表的中各自独有的数据
结束!!!