目录:
1. UNION
并集,所有的内容都查询,重复的显示一次
2. UNION ALL
并集,所有的内容都显示,包括重复的
3. INTERSECT
交集:
只显示重复的
4. MINUS
差集:
只显示对方没有的(跟顺序是有关系的)首先建立一张只包含 20 部门员工信息的表: CREATE TABLE emp20 AS SELECT * FROM emp WHERE deptno=20 ;
5. 验证
1、验证 UNION 及UNION ALL UNION:
SELECT * FROM emp UNION SELECT * FROM emp20 ; 使用此语句重复的内容不再显示了
UNION ALL:
SELECT * FROM emp UNION ALL SELECT * FROMemp20 ; 重复的内容依然显示
2、验证INTERSECT
SELECT * FROM emp INTERSECT SELECT * FROMemp20 ;
只显示了两个表中彼此重复的记录。
3、MINUS
返回差异的记录
SELECT * FROM emp MINUS SELECT * FROMemp20 ;
只显示了两张表中的不同记录
满链接也可以用以下的方式来表示:
select t1.id,t2.id from table1 t1,table t2where t1.id=t2.id(+)
union
select t1.id,t2.id from table1 t1,table t2where t1.id(+)=t2.id