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

如何在SELECT查询中编写JOIN关联子查询并解决多行返回错误

错误原因

写在SELECT后的子查询属于标量子查询,要求必须返回单行单列结果。你当前的子查询没有和外层LOAD表的单行做关联,会返回全量符合JOIN条件的location_key,行数大于1,因此触发报错。且你在子查询中重复JOIN LOAD表属于冗余逻辑,完全不需要嵌套子查询实现需求。

修正方案

直接在外层查询做两表关联即可,修正后代码如下:

USE DATABASE PROD_DWH;
SELECT
    CAST(l.dwh_masterclient_id AS smallint) AS dwh_masterclient_id,
    loc.location_key AS carrier_company_name,
    1 AS exception_codes
FROM INGEST.LOAD_ l
LEFT JOIN INGEST.LOCATION_ loc
ON l.dwh_masterclient_id = loc.dwh_masterclient_id;
  • 上面用LEFT JOIN可以保留LOAD表所有dwh_masterclient_id记录,即使LOCATION表无匹配时carrier_company_name返回NULL;如果只需要两张表都存在对应dwh_masterclient_id的匹配记录,把LEFT JOIN改成INNER JOIN即可。
  • 代码中给表加了别名简化写法,避免字段名冲突混淆。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:18:03