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

SQL外键关联表左连接无匹配值返回空白的查询实现

核心实现逻辑

需要将PAR表作为主表左外连接AT表,关联字段为两者共有的主键A,再通过空值处理函数将未匹配到的C字段转换为'blank'即可。


正确查询语句

全数据库兼容版本(使用标准SQL函数)

SELECT 
  PAR.A,
  COALESCE(CAST(AT.C AS CHAR), 'blank') AS C
FROM PAR
LEFT JOIN AT 
  ON PAR.A = AT.A;

注:CAST(AT.C AS CHAR)是为了统一整数类型C和字符串'blank'的返回类型,避免部分数据库报类型不匹配错误。

MySQL专属简化版本

SELECT 
  PAR.A,
  IFNULL(AT.C, 'blank') AS C
FROM PAR
LEFT JOIN AT 
  ON PAR.A = AT.A;

原语句错误原因

  • 混用隐式内连接语法(FROM PAR AS P, AT AS A)和左连接语法,会先对两张表做笛卡尔积再执行后续连接,逻辑完全错误
  • 引用了不存在的表PARTICIPANT,你的库中只有PAR、AT两张业务表
  • 额外加了WHERE A.C IS NULL过滤条件,会把已经匹配到AT表数据的行全部筛掉,只能返回未匹配的C2036、D2000两行,不符合输出全部PAR表数据的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:06:04