如何从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)
广告