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

如何将表中多列ID替换为对应名称并保留空值

正确SQL查询语句实现需求

原SQL存在两个关键问题:

  • 关联条件错误:第二个和第三个JOIN的关联字段错误引用了b.ID,应该分别对应各自别名的ID(bb.ID、bc.ID)
  • 使用内连接(JOIN):当Table1中ProcessID或DeliverID为空时,内连接会过滤掉这些记录,无法得到完整结果,需改用左连接(LEFT JOIN)

正确的SQL语句如下:

SELECT 
    a.ID AS Table1ID,
    b.Name AS Receiver,
    bb.Name AS Processor,
    bc.Name AS Delivered
FROM Table1 AS a
LEFT JOIN Table2 AS b ON a.ReceiveID = b.ID
LEFT JOIN Table2 AS bb ON a.ProcessID = bb.ID
LEFT JOIN Table2 AS bc ON a.DeliverID = bc.ID

说明:

  • 使用LEFT JOIN确保Table1的所有记录都被保留,即使关联的Table2中没有匹配的ID(对应结果中的空值)
  • 每个LEFT JOIN分别关联Table2的不同别名,对应Table1的ReceiveID、ProcessID、DeliverID字段
  • 通过AS给字段设置别名,与期望的结果列名一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 17:42:09