You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

合并7个结构相同的SQL表所有行,应选用哪种Join操作?

正确的解决方案:使用UNION ALLUNION而非Join操作

嘿,你这个需求其实不需要用SQL Join操作哦!Join的作用是基于关联字段把多个表的列横向拼接在一起,而你要的是把多个结构一致的表的行纵向合并,这时候应该用UNION或者UNION ALL

两者的区别:

  • UNION ALL:会直接把所有表的行全部合并,不会检查重复行,性能更高。如果你的7个表中没有重复数据,或者你不需要去除重复行,这是最优选择。
  • UNION:会自动去除合并结果中的重复行,但因为需要额外做重复检查,性能比UNION ALL差一些。

示例SQL代码(以7个表为例):

SELECT X, Y, Z FROM Table1
UNION ALL
SELECT X, Y, Z FROM Table2
UNION ALL
SELECT X, Y, Z FROM Table3
UNION ALL
SELECT X, Y, Z FROM Table4
UNION ALL
SELECT X, Y, Z FROM Table5
UNION ALL
SELECT X, Y, Z FROM Table6
UNION ALL
SELECT X, Y, Z FROM Table7;

执行这段语句后,就能得到你想要的Final Table——所有表的行按顺序合并,结构和原表完全一致。

内容的提问来源于stack exchange,提问作者Anup Buchke

火山引擎 最新活动