mysql - 将表名的 "field"添加到UNION的SQL结果中?

标签 mysql sql select union

如果我有一个简单的联合

select name, phone from users union select name, phone from vendors;

有没有办法将表名添加到结果中?

所以代替

+--------+-------+
| name   | phone |
+--------+-------+
| Jim    | 123...|
| Macy's | 345...|
+--------+-------+

我会得到

+--------+-------+---------+
| name   | phone | table   |
+--------+-------+---------+
| Jim    | 123...| users   |
| Macy's | 345...| vendors |
+--------+-------+---------+

最佳答案

select name, phone, 'users' as table_name from users
union
select name, phone, 'vendors' as table_name from vendors;

更好的解决方案是使用union all,这样服务器就不会检查不同的值

select name, phone, 'users' as table_name from users
union all
select name, phone, 'vendors' as table_name from vendors;

关于mysql - 将表名的 "field"添加到UNION的SQL结果中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12992315/

相关文章:

mysql - select 语句中的子查询找不到派生表?

mysql - 排除嵌套 SQL 查询的结果

Mysql - 逐行累计统计总数

php - 添加符号连接多个表

mysql - SQL 查询选择前 14 个月,如果缺少任何月份,则添加金额 '0'

sql - mysql 左连接查询需要很多时间来执行

MySQL - 如何列出每个日历年工作不超过一次的所有志愿者

sql - 将单个sql列拆分为五个

mysql - 如何编写查询选择合理的权衡?

LINQ 从动态表名字符串中选择