SQL实现多个同结构数据表按顺序拼接合并展示的方法
实现多表合并查询的SQL方案
你要的上下拼接相同结构表的需求,直接用UNION ALL关键字即可实现,它会按你写的表顺序保留所有记录,不会自动去重,完全符合你要的展示效果。
如果只是查询拼接后的结果,不需要持久化存储,用下面的语句:
SELECT id, name, age, city FROM table1 UNION ALL SELECT id, name, age, city FROM table2 -- 如果还有更多结构相同的表,继续往后加UNION ALL和对应SELECT语句即可
如果你需要把拼接结果永久存为新表NewTable,不同数据库的语法略有差别:
- MySQL 写法:
CREATE TABLE NewTable AS SELECT id, name, age, city FROM table1 UNION ALL SELECT id, name, age, city FROM table2
- PostgreSQL/SQL Server 写法:
SELECT * INTO NewTable FROM ( SELECT id, name, age, city FROM table1 UNION ALL SELECT id, name, age, city FROM table2 ) AS combined_data
注意:不要用不带ALL的UNION,它会自动去除两个表的重复记录,还会默认排序,会改变你要的原表顺序、也可能丢失你需要保留的重复数据。
内容的提问来源于stack exchange,提问作者DorFik
相关产品推荐
相关产品推荐

