You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无公共关联列的table1、table2数据插入table3的SQL实现问题

解决方案

你需要的是两张表数据的无关联组合,不需要使用带关联条件的INNER JOIN,根据你的实际插入规则可以选以下两种方案:

方案1:插入所有hID和aID的全组合(笛卡尔积)

如果你的需求是把table1每一条的hID和table2每一条的aID都做配对插入table3,直接使用**交叉连接(CROSS JOIN)**即可,不需要写关联条件:

INSERT INTO table3 (hID, aID)
SELECT t1.hID, t2.aID
FROM table1 t1
CROSS JOIN table2 t2;

注意:该方案最终生成的插入数据量是table1行数 × table2行数,如果两张表数据量较大,会产生非常多的插入数据,执行前请确认符合你的业务预期。

方案2:按行顺序一一对应插入

如果你只需要table1和table2的行按顺序配对(比如第1行hID配第1行aID,第2行hID配第2行aID),可以用窗口函数给两张表加行号后关联:

INSERT INTO table3 (hID, aID)
SELECT t1.hID, t2.aID
FROM 
  (SELECT hID, ROW_NUMBER() OVER(ORDER BY hID) AS row_num FROM table1) t1
INNER JOIN 
  (SELECT aID, ROW_NUMBER() OVER(ORDER BY aID) AS row_num FROM table2) t2
ON t1.row_num = t2.row_num;

注意:该方案最终插入的数据量是两张表中行数更少的那一方的数量,超过的部分会被舍弃。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:54:03