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

如何为MySQL另一张表的每条记录在新表插入两条记录

MySQL 实现单条记录生成两条关联插入的方案

方案一:使用 UNION ALL 合并查询结果

这是适配所有MySQL版本的通用写法:

  1. 先确保目标表 table2 存在(已存在可跳过):
CREATE TABLE IF NOT EXISTS table2 (
    table1_id INT,
    site VARCHAR(50)
);
  1. 执行插入操作,将 table1 每条记录分别与 facebook、google 组合后插入:
INSERT INTO table2 (table1_id, site)
SELECT id, 'facebook' FROM table1
UNION ALL
SELECT id, 'google' FROM table1;

方案二:使用 CROSS JOIN 关联站点列表(MySQL 8.0+ 推荐)

如果后续需要扩展更多站点,这种方式更灵活,只需修改站点列表即可:

INSERT INTO table2 (table1_id, site)
SELECT t1.id, s.site
FROM table1 t1
CROSS JOIN (
    SELECT 'facebook' AS site
    UNION ALL
    SELECT 'google' AS site
) s;

简化版(MySQL 8.0.19+ 支持)

用 VALUES 语法直接定义站点列表,代码更简洁:

INSERT INTO table2 (table1_id, site)
SELECT t1.id, s.site
FROM table1 t1
CROSS JOIN (VALUES ('facebook'), ('google')) AS s(site);

效果验证

执行后 table2 的数据将与需求示例完全一致:

table1_id, site
1, facebook
1, google
2, facebook
2, google

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:35:43