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

MySQL Left Join多条件关联异常求助:用户ID转用户名结果多为null

解决方案

你的问题出在JOIN条件上:原语句要求loggedby和updatedby必须同时等于同一个user.id才能匹配,这只有当创建人和更新人是同一用户时(比如job2)才会生效,其他情况都无法关联到用户数据,所以返回大量null。

要分别替换loggedby和updatedby的ID为对应用户名,需要两次关联user表,并给每个关联表设置别名区分:

SELECT 
    job.number,
    job.Desc,
    u1.name AS loggedby,
    u2.name AS updatedby
FROM job
LEFT JOIN user u1 ON job.loggedby = u1.id
LEFT JOIN user u2 ON job.updatedby = u2.id;

语句说明:

  • 以job表为主表,第一次关联user表(别名u1),匹配loggedby字段对应的用户名称
  • 第二次关联user表(别名u2),匹配updatedby字段对应的用户名称
  • 通过AS关键字将查询到的用户名重命名为loggedby和updatedby,与你期望的输出列名完全一致

执行以上语句后,就能得到你想要的结果:

numberDescloggedbyupdatedby
1Job 1TwoOne
2Job 2FourFour
3Job 3OneThree
4Job 4ThreeOne
5Job 5OneFive

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 01:57:20