我有一个SQL查询,它使用UNION来从两个表中获取数据。我需要一种方法来找出哪些数据来自UI中的哪个表。有没有办法插入一个标志,可以说明来自特定表的数据?我知道解雇两个查询可能是一个解决方案,但我想尝试将其保存在一个查询中。有解决方案吗?
答案 0 :(得分:0)
SELECT 'table1' AS 'table', * FROM table1
UNION
SELECT 'table2' AS 'table', * FROM table2
答案 1 :(得分:0)
您可以尝试:
SELECT 'T1' as tbl, Field1,Field2,Field3 From TABLE1 UNION
SELECT 'T2' as tbl, Field1,Field2,Field3 From TABLE2
答案 2 :(得分:0)
如果要合并两个表中的数据,那么您应该使用UNION ALL
,而不是UNION
。 UNION
会导致删除重复项的开销,即使不存在重复项也是如此。
所以:
select t1.*, 'table1' as which
from table1 t1
union all
select t2.*, 'table2'
from table2 t2;
使用*
假设两个表中的列和类型相同/兼容。