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

如何将Table1双供应商编号列关联Table2获取对应名称?

问题分析与解决方案

你的问题核心是只关联了一次system.Table2,导致ABALPH只能取到主供应商(PDAN8)的名称,没法同时获取替代供应商(PDANCR)的名称。需要两次连接system.Table2,分别通过主供应商号、替代供应商号关联,同时给两次连接的表设置不同别名做区分。

修正后的SQL代码如下:

SELECT 
    PDDOCO as OrderNumber, 
    PDMCU as Branch,
    PDAN8 as SupplierNumber,   -- 主供应商编号
    t2.ABALPH as SupplierName,  -- 主供应商名称
    PDANCR as AltSupplierNo,   -- 替代供应商编号
    t3.ABALPH as AltSupplierName  -- 替代供应商名称
FROM system.Table1
JOIN system.Table2 t2 ON system.Table1.PDAN8 = t2.Supplier -- 关联主供应商
LEFT JOIN system.Table2 t3 ON system.Table1.PDANCR = t3.Supplier -- 关联替代供应商(用LEFT JOIN避免无替代供应商时丢失整条数据)
WHERE PDUOPN > 0;

额外说明:

  • 给两次连接的system.Table2分别设置t2、t3别名,用来区分两次关联的数据源
  • 用LEFT JOIN关联替代供应商是为了兼容部分订单无替代供应商的场景,避免这类订单被过滤;如果确认所有订单都有替代供应商,也可以改用JOIN
  • 把原代码里的括号注释改成了SQL标准的--注释,避免出现语法错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 04:04:56