单个查询中的MySQL UNION SELECT和IN子句

让我们首先创建一个表-

create table DemoTable1
   -> (
   -> StudentId int,
   -> StudentName varchar(20)
   -> );

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

insert into DemoTable1 values(210,'Adam');

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

select * from DemoTable1;

这将产生以下输出-

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
|       210 | Adam        |
+-----------+-------------+
1 row in set (0.00 sec)

这是创建第二个表的查询-

create table DemoTable2
   -> (
   -> StudentId int,
   -> StudentName varchar(20)
   -> );

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

insert into DemoTable2 values(100,'Chris');

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

 select * from DemoTable2;

这将产生以下输出-

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
|       100 | Chris       |
+-----------+-------------+
1 row in set (0.00 sec)

这是对MySQL UNION SELECT和IN子句的查询-

select StudentName from
   -> (
   -> select StudentId,StudentName from DemoTable1
   -> UNION
   -> select StudentId,StudentName from DemoTable2
   -> ) tbl
   -> where StudentId IN(210,100);

这将产生以下输出-

+-------------+
| StudentName |
+-------------+
| Adam        |
| Chris       |
+-------------+
2 rows in set (0.00 sec)