在单个MySQL查询中使用两个SELECT语句返回在某个字段中没有值的记录

为此,您可以将WHERE子句与子查询一起使用。让我们首先创建一个表-

mysql> create table DemoTable1840
     (
     UserName varchar(20),
     UserType ENUM('GUEST','ADMIN')
     );

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable1840 values('Chris','Admin');
mysql> insert into DemoTable1840 values('David','Guest');
mysql> insert into DemoTable1840 values('Chris','Guest');

使用select语句显示表中的所有记录-

mysql> select * from DemoTable1840;

这将产生以下输出-

+----------+----------+
| UserName | UserType |
+----------+----------+
| Chris    |    ADMIN |
| David    |    GUEST |
| Chris    |    GUEST |
+----------+----------+
3 rows in set (0.00 sec)

这是对在某个字段中没有值的记录的查询:

mysql> select UserName from DemoTable1840 where UserName NOT IN(select UserName from DemoTable1840 where UserType='Admin');

这将产生以下输出-

+----------+
| UserName |
+----------+
| David    |
+----------+
1 row in set (0.00 sec)