如何从不存在于MySQL表B中的表A中选择?
您可以使用IN运算符从一个表中选择不存在于另一个表中的内容。为了理解上述语法,让我们创建一个表。
第一个表名为A,第二个表名为B。创建表的查询如下:
mysql> create table A
-> (
-> Value int
-> );
Query OK, 0 rows affected (0.56 sec)
现在,您可以使用插入命令在表中插入一些记录。
查询如下所示:
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)
使用插入命令在表中插入一些记录。
查询如下所示:
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)
这里是从不存在于表B中的表A中进行选择的查询:
mysql> SELECT * FROM A WHERE Value NOT IN (SELECT Value2 FROM B);
输出如下所示:
+-------+
| Value |
+-------+
| 10 |
| 30 |
| 80 |
+-------+
3 rows in set (0.00 sec)
阅读更多:MySQL 教程
极客教程