添加“字段"从 UNION 到 SQL 结果的表名?
如果我有一个简单的联合
If I have a simple union
select name, phone from users union select name, phone from vendors;
有没有办法将表名添加到结果中?
Is there a way to add the table name to the results?
所以代替
+--------+-------+
| 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
,这样服务器就不会检查不同的值
Better solution will be to use union all
, so server will not be checking for distinct values
select name, phone, 'users' as table_name from users
union all
select name, phone, 'vendors' as table_name from vendors;
相关文章