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

SQL查询需求:合并两张表中指定字段的所有结果

解决办法:用UNION/UNION ALL合并两个表的数据

嘿,别担心,这绝对是SQL新手入门阶段很常见的需求,我来一步步给你讲清楚怎么实现!

你的核心需求是:把表1的customer_name、customer_address、country、gender,和表2的customer_name、customer_address整合到同一个结果集里——因为表2没有country和gender,这两个字段我们可以用NULL来占位填充,保证两个查询的结构一致。

具体SQL语句

-- 如果你需要保留所有重复记录,用UNION ALL(性能更好)
SELECT 
    customer_name,
    customer_address,
    country,
    gender
FROM table1
UNION ALL
SELECT 
    customer_name,
    customer_address,
    NULL AS country,  -- 表2无此字段,用NULL占位
    NULL AS gender    -- 同理填充gender字段
FROM table2;

-- 如果你想自动去除完全重复的记录(name+address都相同的行),把UNION ALL换成UNION
SELECT 
    customer_name,
    customer_address,
    country,
    gender
FROM table1
UNION
SELECT 
    customer_name,
    customer_address,
    NULL AS country,
    NULL AS gender
FROM table2;

关键细节解释

  • 字段对齐要求:UNION系列关键字要求前后两个SELECT语句返回的字段数量、顺序、数据类型必须一致,所以表2的查询里必须补上country和gender字段,用NULL填充是最合理的选择(因为表2确实没有这些数据)。
  • UNION vs UNION ALL:
    • UNION ALL会保留所有原始记录,包括重复的,执行速度更快;
    • UNION会自动去除两个结果集中完全重复的行(即四个字段都一模一样的记录),但因为要做去重校验,性能会比UNION ALL稍差。你可以根据自己的实际需求选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:25:35