如何从 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)
相关文章
有用资源
mysql 参考教程 - 该教程包含有关 mysql 的更多信息:https://www.cainiaomax.com/mysql/

