MySQL中两个选择之间的区别?

您可以使用子查询来区分MySQL中的两个选择。语法如下:

SELECT *FROM yourTableName where yourColumnName NOT IN(SELECT yourColumnName FROM youTableName WHERE yourCondition;

为了理解上述语法,让我们创建一个表。创建表的查询如下:

mysql> create table DifferenceSelectDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> UserId int,
   -> UserValue int,
  -> PRIMARY KEY(Id)
   ->  );

使用insert命令在表中插入一些记录。查询如下:

mysql> insert into DifferenceSelectDemo(UserId,UserValue) values(10,10);
mysql> insert into DifferenceSelectDemo(UserId,UserValue) values(10,20);
mysql> insert into DifferenceSelectDemo(UserId,UserValue) values(20,30);
mysql> insert into DifferenceSelectDemo(UserId,UserValue) values(20,20);
mysql> insert into DifferenceSelectDemo(UserId,UserValue) values(30,40);
mysql> insert into DifferenceSelectDemo(UserId,UserValue) values(30,20);

使用select语句显示表中的所有记录。查询如下:

mysql> select *from DifferenceSelectDemo;

以下是输出:

+----+--------+-----------+
| Id | UserId | UserValue |
+----+--------+-----------+
|  1 |     10 |        10 |
|  2 |     10 |        20 |
|  3 |     20 |        30 |
|  4 |     20 |        20 |
|  5 |     30 |        40 |
|  6 |     30 |        20 |
+----+--------+-----------+
6 rows in set (0.02 sec)

这是获取两个选择之间差异的查询:

mysql> select *from DifferenceSelectDemo
   -> WHERE UserValue NOT IN (select UserValue from DifferenceSelectDemo where Id=1);

以下是输出:

+----+--------+-----------+
| Id | UserId | UserValue |
+----+--------+-----------+
|  2 |     10 |        20 |
|  3 |     20 |        30 |
|  4 |     20 |        20 |
|  5 |     30 |        40 |
|  6 |     30 |        20 |
+----+--------+-----------+
5 rows in set (0.09 sec)