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

PostgreSQL多值查询需求:关联jobs与users表实现名称映射

实现ID到名称的映射查询

刚好处理过类似的需求,要把jobs表中job1、job2的ID替换成users表对应的名称,咱们通过两次关联users表就能搞定,具体实现如下:

最终PostgreSQL查询语句

SELECT
    j.num,
    u1.name AS job1,
    u2.name AS job2
FROM
    jobs j
LEFT JOIN
    users u1 ON j.job1 = u1.id
LEFT JOIN
    users u2 ON j.job2 = u2.id;

代码说明

  • 给表起别名是关键:把jobs表简称为j,users表分别用u1(对应job1字段的关联)和u2(对应job2字段的关联),这样能避免同一张表多次关联时的字段冲突。
  • 选用LEFT JOIN是为了兼容极端情况:如果jobs表中某个job1/job2的ID在users表中找不到匹配项,查询结果依然会保留这条记录,对应位置显示NULL;如果确定所有ID都能在users表找到,换成INNER JOIN也完全可行。
  • 用AS重命名字段,保证输出结果的字段名和你要求的一致。

实际执行结果

运行这段查询后,会得到如下结果(注意:原需求里第二条的job1写的是name6,但users表中没有id=23的记录,所以实际返回NULL,如果是笔误可以调整数据或需求哦):

numjob1job2
1name4name3
2NULLname5
3name1name3
4NULLname1
5name2NULL

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:10:40