mysq集合差操作 MySQL差集MINUS運算子

2021-10-13 08:39:36 字數 1418 閱讀 6789

在本教程中,您將了解sql minus運算子以及如何使用join來模擬mysql minus運算子來求差集。

sql minus操作員介紹

minus是包括,和minus在內的sql標準中的三個操作符之一。

minus比較兩個查詢的結果,返回在第乙個查詢結果集中,但不是第二個查詢結果集中的行記錄,也就是說不包含兩個查詢返回集合的相交部分。

下面說明了minus運算子的語法:

select column_list_1 from table_1 minus select columns_list_2 from table_2;

使用minus運算子的查詢的基本規則如下:

column_list_1和column_list_2中列的數量和順序必須相同。

兩個查詢中相應列的資料型別必須相容或可轉換。

假設我們有兩個表t1和t2,其結構和資料如下:

use testdb; drop table if exists t1; drop table if exists t2; create table t1 ( id int primary key ); create table t2 ( id int primary key ); insert into t1 values (1),(2),(3); insert into t2 values (2),(3),(4);

以下查詢從t1表的查詢中返回不同於t2表查詢結果中的值。

select id from t1 minus select id from t2;

以下圖說明了minus運算子:

請注意,某些資料庫系統(例如microsoft sql server,postgresql等)使用具有相同功能,但是它叫作:except運算子,而不是叫minus運算子。

mysql minus運算子

不幸的是,mysql不支援minus操作。 但是,可以使用mysql連線來模擬它。

要模擬兩個查詢的minus運算實現,請使用以下語法:

select column_list from table_1 left join table_2 on join_predicate where table_2.id is null;

例如,以下查詢使用left join子句返回與minus運算子相同的結果:

select id from t1 left join t2 using (id) where t2.id is null;

或者,也可以使用 not in運算子 –

mysql> select * from t1 where id not in(select id from t2); +----+ | id | +----+ | 1 | +----+ 1 row in set

在本教程中,您已經了解了sql minus運算子以及如何使用left join子句來實現mysql minus運算子。

¥ 我要打賞 糾錯/補充 收藏

mysq集合差操作 Python 基礎(集合)

st set hello world 建立乙個唯一字元的集合 st type st set st set 關注 點讚 點讚 點讚 在看 st 集合物件的一些方法 方法說明set.add elmnt 增加乙個新元素到集合裡,elmnt要新增的元素。set.updata set 把set中元素更新到原集...

mysq集合差操作 mysql幾個結果集集合操作命

眾所周知的幾個結果集集合操作命令,今天詳細地測試了一下,發現一些問題,記錄備考。假設我們有乙個表student,包括以下欄位與資料 drop table student create table student id int primary key,name nvarchar2 50 not nul...

順序表集合的交並差操作

1.用順序表表示集合,設計乙個演算法實現集合的求交集運算 void intersection sqlist a,sqlist b,sqlist c int i,j,k k記錄c中的元素個數 for i 0 i2.用順序表表示集合,設計乙個演算法實現集合的求並集運算 void union sqlist...