--Oracle中的複合查詢 複合查詢:包含集合運算(操作)的查詢 常見的集合操作有: union: 兩個查詢的並集(無重覆行、按第一個查詢的第一列升序排序) union all:兩個查詢的並集(有重覆行) intersect:兩個查詢的交集(無重覆行、按第一個查詢的第一列升序排序) minus: ... ...
--Oracle中的複合查詢 複合查詢:包含集合運算(操作)的查詢 常見的集合操作有: union: 兩個查詢的並集(無重覆行、按第一個查詢的第一列升序排序) union all:兩個查詢的並集(有重覆行) intersect:兩個查詢的交集(無重覆行、按第一個查詢的第一列升序排序) minus: 兩個查詢的差集(無重覆行、按第一個查詢的第一列升序排序),取第一張表有而第二張表沒有的所有記錄 由於union、intersect、minus存在排序,故而對sql性能的影響很大,建議少用。 --測試 create table t1 (id number,name varchar2(20)); create table t2 (id number,name varchar2(20)); insert into t1 values(1,'表1'); insert into t1 values(2,'表1'); insert into t1 values(3,'表1'); insert into t1 values(4,'表1'); insert into t1 values(5,'表1'); insert into t2 values(3,'表2'); insert into t2 values(4,'表2'); insert into t2 values(5,'表2'); insert into t2 values(6,'表2'); insert into t2 values(7,'表2'); --查詢t1和t2 SQL> select * from t1; ID NAME ---------- -------------------- 1 表1 2 表1 3 表1 4 表1 5 表1 SQL> select * from t2; ID NAME ---------- -------------------- 3 表2 4 表2 5 表2 6 表2 7 表2 --並集 --1.union select id from t1 union select id from t2 ; SQL> select id from t1 2 union 3 select id from t2 ; ID ---------- 1 2 3 4 5 6 7 7 rows selected --2.union all select id from t1 union all select id from t2; SQL> select id from t1 2 union all 3 select id from t2; ID ---------- 1 2 3 4 5 3 4 5 6 7 10 rows selected --交集 select id from t1 intersect select id from t2; SQL> select id from t1 2 intersect 3 select id from t2; ID ---------- 3 4 5 --差集 select id from t1 minus select id from t2; SQL> select id from t1 2 minus 3 select id from t2; ID ---------- 1 2