UNION
并集,所有的内容都查询,重复的显示一次
UNION ALL
并集,所有的内容都显示,包括重复的
INTERSECT
交集:
只显示重复的
MINUS
差集:
只显示对方没有的(跟顺序是有关系的)首先建立一张只包含 20 部门员工信息的表: CREATE TABLE emp20 AS SELECT * FROM emp WHERE deptno=20 ;
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
网友评论