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

SQL中如何连接两个表并保留原始表的全部数据?

问题原因

你当前使用的JOIN默认是内连接(INNER JOIN),仅会返回两张表中purchase_number匹配的行,所以会丢失表x中没有匹配到的记录。

解决方案

要保留左表(原始表x)的全部记录,无论右表y是否有匹配数据,改用左外连接即可(大部分数据库支持省略OUTER关键字,简写为LEFT JOIN),修改后的SQL语句如下:

SELECT 
  x.purchase_number,
  x.revenue,
  y.group_id
FROM table_x x
LEFT JOIN table_y y 
ON x.purchase_number = y.purchase_number

注意事项

  • 这里没有使用SELECT *,而是显式指定取x表的purchase_number、revenue字段以及y表的group_id字段,避免两张表同名字段冲突导致结果异常
  • 左连接逻辑下,x表中没有匹配到y表数据的行,对应的group_id字段会自动填充为NULL,完全符合你的预期输出要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:39:05