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

Table_A无聚合左连接分组后Table_B的SQL实现问题咨询

问题分析与修正方案

你的SQL语句存在语法和逻辑问题,导致执行失败,具体问题及修正方案如下:

原语句的问题点

  • 带横杠的表名需用反引号(`)包裹(不同数据库可能用双引号,如Oracle),否则会被判定为语法错误
  • 左连接的子查询必须指定别名,数据库无法识别无别名的子查询字段
  • ON子句错误使用Left关键字,LEFT是JOIN的修饰词,应放在JOIN之前,而非ON子句内
  • 若分组仅为获取Key+Text的唯一组合,用DISTINCT比GROUP BY更直观高效

修正后的SQL(GROUP BY版本)

SELECT a.*, b.Key, b.Text
FROM `TABLE-A` a
LEFT JOIN (
    SELECT `TABLE-B`.Key, `TABLE-B`.Text
    FROM `TABLE-B`
    GROUP BY `TABLE-B`.Key, `TABLE-B`.Text
) b ON a.Key = b.Key

修正后的SQL(DISTINCT版本,推荐)

如果分组仅为去重Key和Text的组合,用DISTINCT更简洁:

SELECT a.*, b.Key, b.Text
FROM `TABLE-A` a
LEFT JOIN (
    SELECT DISTINCT `TABLE-B`.Key, `TABLE-B`.Text
    FROM `TABLE-B`
) b ON a.Key = b.Key

关键说明

  • 给表和子查询取别名(如a代表TABLE-A,b代表子查询结果),简化语句同时避免字段歧义
  • 明确指定查询字段,尽量避免SELECT *,减少不必要的字段读取,提升性能
  • 左连接会保留TABLE-A的所有行,当TABLE-B无匹配Key时,b.Key和b.Text会返回NULL,完全符合你的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 09:44:55