如何合并5-6个列结构相同、数据无关联的独立表?
合并同结构无重复数据的多张表
嘿,这个需求太典型了!既然你的所有表结构完全一致,而且已经确认没有重复的Customer数据,那用SQL的UNION ALL语法就能轻松搞定,这也是最高效的方式。
核心实现代码
假设你的表是Table1到Table6,每一张表的列都是CustomerID、CustomerName、ContactInfo这类相同结构的字段,那直接把每个表的查询结果用UNION ALL拼接起来就行:
SELECT CustomerID, CustomerName, ContactInfo FROM Table1 UNION ALL SELECT CustomerID, CustomerName, ContactInfo FROM Table2 UNION ALL SELECT CustomerID, CustomerName, ContactInfo FROM Table3 UNION ALL SELECT CustomerID, CustomerName, ContactInfo FROM Table4 UNION ALL SELECT CustomerID, CustomerName, ContactInfo FROM Table5 UNION ALL SELECT CustomerID, CustomerName, ContactInfo FROM Table6;
关键注意事项
- 一定要保证每个
SELECT语句里的列数、列顺序、数据类型完全匹配,不然数据库会抛出语法错误; - 如果你之后不确定会不会出现重复数据,可以把
UNION ALL换成UNION——不过UNION会自动做去重检查,性能比UNION ALL稍差,既然你现在明确没有重复,优先用UNION ALL; - 要是想把合并后的结果保存成一个新表,不同数据库的写法略有差异:
- MySQL/PostgreSQL:
CREATE TABLE CombinedCustomers AS [上面的整个UNION ALL语句]; - SQL Server:
SELECT * INTO CombinedCustomers FROM ([上面的整个UNION ALL语句]) AS Temp;
- MySQL/PostgreSQL:
内容的提问来源于stack exchange,提问作者Rovshan Aliyev
相关产品推荐
相关产品推荐

