在MySQL中使用相同的字段名称堆叠不同的数据

时间:2013-07-01 14:42:35

标签: mysql join

我正在使用MySQL中的三个表,一个来自A公司(18,000个记录),一个来自B公司(145,000个记录),一个来自C公司(8,000个记录)。每个表都有唯一的数据,但具有相同的确切字段名称。我需要将所有三个表连接在一起以将数据堆叠在一起,因此数据被合并,因此在一个表中总共将有8 + 18 + 145 = 171,000个记录。任何人都可以帮我解决SQL查询问题吗?

2 个答案:

答案 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

这假设字段名称的顺序相同且具有兼容的类型。最好在每个子查询中单独列出所有字段名称。