在MySQL的UNION选择查询中选择表名称作为列?

您可以为此使用AS命令。让我们首先创建一个表-

mysql> create table DemoTable
   (
   Name varchar(20)
   );

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

mysql> insert into DemoTable values('John');

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

mysql> select * from DemoTable;

这将产生以下输出-

+------+
| Name |
+------+
| John |
+------+
1 row in set (0.00 sec)

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

mysql> create table DemoTable2
   (
   Name varchar(20)
   );

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

mysql> insert into DemoTable2 values('Bob');

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

mysql> select *from DemoTable2;

这将产生以下输出-

+------+
| Name |
+------+
| Bob  |
+------+
1 row in set (0.00 sec)

以下是在MySQL中的UNION select查询中选择表名称作为列的查询-

mysql> select 'DemoTable' as DemoTable,Name from DemoTable
union
select 'DemoTable2' as DemoTable2,Name from DemoTable2
;

这将产生以下输出-

+--------------+------+
| DemoTable    | Name |
+--------------+------+
| DemoTable    | John |
| DemoTable2   | Bob  |
+--------------+------+
2 rows in set (0.00 sec)