多个表上的SQL联合

时间:2015-05-24 18:24:24

标签: mysql database

我的数据库模型有这种情况。我有很多表有相似字段但信息不同的表。我需要从中生成统计数据。对它们进行组合查询的最佳方法是什么。

TableA
ID name timestamp (created on)

TableB
ID name timestamp (created on)

tableC
ID name timestamp (created on)
........... & So On. Probably 10-15 more similar tables.

我正在寻找的是Union,因为它们都是不同的数据。 什么是最好的方式,我可以收集像前100名最近的条目等数据。我知道访问每个表并结合结果然后生成统计数据的天真方法。还有其他办法吗?

select * from tableA
union
select * from tableB
union ...... & So on for 10-15 more tables. 

期望的结果是获取最新条目或搜索特定列的结果(例如 - 所有表中具有通用名称的所有条目的列表。)

1 个答案:

答案 0 :(得分:0)

您可以使用UNION并仅选择所需的列。如果表A中的列在表B中不存在,则在该位置使用null ...

select colA, colB, colC from tableA
union
select colA, null, colC from tableB

当然,例如colA类型在所有表格中必须相同......最后:

order by colC
相关问题