我正在使用MySQL中的三个表,一个来自A公司(18,000个记录),一个来自B公司(145,000个记录),一个来自C公司(8,000个记录)。每个表都有唯一的数据,但具有相同的确切字段名称。我需要将所有三个表连接在一起以将数据堆叠在一起,因此数据被合并,因此在一个表中总共将有8 + 18 + 145 = 171,000个记录。任何人都可以帮我解决SQL查询问题吗?
答案 0 :(得分:1)
SELECT t1.a, t1.b, 'Company A'
FROM table1 t1
UNION ALL
SELECT t2.a, t2.b, 'Company B'
FROM table2 t2
UNIONALL
SELECT t3.a, t3.b, 'Company C'
FROM table3 t3
答案 1 :(得分:0)
这称为union all
查询:
select t.*
from ((select 'A' as which, A.* from A) union all
(select 'B' as which, B.* from B) union all
(select 'C' as which, C.* from C)
) t
这假设字段名称的顺序相同且具有兼容的类型。最好在每个子查询中单独列出所有字段名称。