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

Redshift SQL两表连接问题:如何生成指定结构的结果集

在Amazon Redshift中实现指定的表连接结果

你需要使用FULL OUTER JOIN,并同时基于id和country两个字段进行匹配,就能得到期望的结果。对应的SQL语句如下:

SELECT
    COALESCE(t1.id, t2.id) AS id,
    COALESCE(t1.country, t2.country) AS country,
    t1.x,
    t2.y
FROM Table_1 t1
FULL OUTER JOIN Table_2 t2
    ON t1.id = t2.id 
    AND t1.country = t2.country
ORDER BY id, country;

逻辑说明:

  • FULL OUTER JOIN会保留两个表中所有记录:包含两表匹配成功的行,也包含左表(Table_1)无匹配的行、右表(Table_2)无匹配的行
  • 连接条件同时指定id和country,确保只有当这两个字段完全匹配时,才会将x和y值对应到同一行
  • COALESCE函数用来处理NULL值:当其中一个表的id或country为NULL时,取另一个表的对应值,保证结果中id和country字段始终有值
  • ORDER BY用来排序,让结果和你期望的格式一致

执行结果:

运行上述SQL后,将得到你想要的输出:

id  country  x     y
1   fr       10    80
2   fr       20    NULL
2   gb       NULL  40
3   fr       30    NULL
3   gb       NULL  60
4   fr       NULL  90

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 03:03:37