如何从 MySQL 表 A 中选择不存在于表 B 中的数据?

mysqlmysqli database更新于 2025/5/29 10:20:17

您可以使用 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 的 NOT NULL 值

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)

相关文章


有用资源