並集 交集 差集 Sql總結

2021-10-23 10:18:57 字數 2058 閱讀 9428

1.並集:將查詢出的兩個結果合併成乙個結果集

– union 去重,合併後的結果都是唯一

– union all不去重,合併後的結果有可能出現重複的

--oracle、mysql、sql server都支援下面的並集查詢

select classid from student

union

select classid from class;

select classid from student

union

allselect classid from class;

結果集:

2.交集:返回兩個查詢結果集中相同部分的結果

select  classid from student

intersect

select classid from class;

-- oracle、sql server中的查詢方法

select s.

*from

(select classid from student) s

join

(select classid from class) c

on s.classid=c.classid;

-- mysql資料庫中的查詢方法(內連線/等值連線)

結果集:

3.差集:返回第乙個查詢結果中與第二個查詢結果不相同的那部分記錄。 查詢結果1-查詢結果2

select classid form student

minus

select classid from classid -- oracle 資料庫中的查詢方法

select classid form student

except

select classid from classid -- sql server資料庫中的查詢方法

select classid

from student

where classid notin(

select classid from class)

;-- mysql 查詢方法1

select s.

*from

(select classid from student) s

left

join

(select classid from class) c

on s.classid=c.classid;

where c.classid is

null

;-- mysql 查詢方法2(左外連線)

結果集:

總結:1.oracle資料庫中的關鍵字,union 並集,去重 ; union all 並集,不去重 ; intersect 交集,取相同的記錄;minus差集,主表 減去 從表中與主表相同的記錄

2.sql server資料庫中的關鍵字,union 並集,去重 ; union all 並集,不去重 ; intersect 交集,取相同的記錄;except差集,主表 減去 從表中與主表相同的記錄

3.mysql資料庫中只有union和union all關鍵字,其他方法需要聯絡實際需求用sql語法取獲取記錄

交集並集差集

1 內連線 select from student a inner join sc b on a.sno b.sno 左連線 select from student a left join sc b on a.sno b.sno 差集 select sno from student except s...

shell bash 交集 並集 差集

方法一 直接用檔名 取兩個文字檔案的並集 交集 差集 並 sort m sort file1 uniq sort file2 uniq uniq 交 sort m sort file1 uniq sort file2 uniq uniq d 差 file1 file2 sort m sort fil...

PHP 交集 並集 差集

array flip array splice 並集 array merge 過濾 array filter 去重 array unique 差集 array diff array diff 函式返回兩個陣列的差集陣列。該陣列包括了所有在被比較的陣列中,但是不在任何其他引數陣列中的鍵值。a1 arr...