如何從MySQL表A中選擇不存在於表B中的資料?


您可以使用 IN 運算子從一個表中選擇不存在於另一個表中的資料。為了理解上述語法,讓我們建立一個表。

第一個表名為 A,第二個表名為 B。建立表的查詢如下所示

mysql> create table A
   -> (
   -> Value int
   -> );
Query OK, 0 rows affected (0.56 sec)

現在您可以使用 INSERT 命令在表中插入一些記錄。

查詢如下所示

mysql> insert into A values(10);
Query OK, 1 row affected (0.23 sec)
mysql> insert into A values(20);
Query OK, 1 row affected (0.11 sec)
mysql> insert into A values(30);
Query OK, 1 row affected (0.11 sec)
mysql> insert into A values(50);
Query OK, 1 row affected (0.10 sec)
mysql> insert into A values(80);
Query OK, 1 row affected (0.12 sec)

使用 SELECT 語句顯示錶中的所有記錄。

查詢如下所示

mysql> select *from A;

以下是輸出結果

+-------+
| Value |
+-------+
| 10    |
| 20    |
| 30    |
| 50    |
| 80    |
+-------+
5 rows in set (0.00 sec)

以下是建立名為 B 的第二個表的查詢

mysql> create table B
   -> (
   -> Value2 int
   -> );
Query OK, 0 rows affected (0.65 sec)

使用 INSERT 命令在表中插入一些記錄。

查詢如下所示

mysql> insert into B values(20);
Query OK, 1 row affected (0.11 sec)
mysql> insert into B values(50);
Query OK, 1 row affected (0.15 sec)

現在您可以使用 SELECT 語句顯示錶中的所有記錄。

查詢如下所示

mysql> select *from B;

以下是輸出結果

+--------+
| Value2 |
+--------+
| 20     |
| 50     |
+--------+
2 rows in set (0.00 sec)

以下是從表 A 中選擇不存在於表 B 中資料的查詢

mysql> SELECT * FROM A WHERE Value NOT IN (SELECT Value2 FROM B);

以下是輸出結果

+-------+
| Value |
+-------+
| 10    |
| 30    |
| 80    |
+-------+
3 rows in set (0.00 sec)

更新於:2019年7月30日

2K+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告