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

如何用SQL合并多表?求生成Table D与Table E的SQL语句

对应的SQL语句示例

先说明:假设三个表(Table A、Table B、Table C)的结构完全一致,且有唯一关联键(比如id),以下是两种常见场景的SQL写法:

1. 生成Table D

根据你描述的需求,这里分两种可能的理解给出写法:

场景1:Table D包含Table A的全部记录,以及Table B、Table C中与Table A存在共同记录的部分(去重)

因为Table A本身已经包含和B、C的共同记录,用UNION自动去重即可:

CREATE TABLE Table_D AS
SELECT * FROM Table_A
UNION
SELECT * FROM Table_B WHERE id IN (SELECT id FROM Table_A)
UNION
SELECT * FROM Table_C WHERE id IN (SELECT id FROM Table_A);

场景2:Table D是Table A的全部记录,同时关联Table B、Table C的匹配记录(保留关联结构)

如果需要把A和B、C的匹配字段合并展示(结构会包含A、B、C的所有列):

CREATE TABLE Table_D AS
SELECT a.*, b.*, c.*
FROM Table_A a
LEFT JOIN Table_B b ON a.id = b.id
LEFT JOIN Table_C c ON a.id = c.id;

2. 生成Table E

合并Table B和Table C,分两种情况:

  • 去重合并(自动剔除重复记录):
CREATE TABLE Table_E AS
SELECT * FROM Table_B
UNION
SELECT * FROM Table_C;
  • 保留所有记录(包括重复项):
CREATE TABLE Table_E AS
SELECT * FROM Table_B
UNION ALL
SELECT * FROM Table_C;

注意:如果你的表结构不一致,或者关联键不是id,只需要替换对应的字段名和关联条件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 16:15:55