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

PostgreSQL中如何从关联专用表查询同名字段并关联对应人员姓名

实现思路

你需要对Person表做两次别名关联,分别匹配志愿者ID和主管医师ID,即可同时取出两者的姓名:

  1. 第一次关联Person表匹配志愿者ID,取出志愿者姓名
  2. 先通过志愿者表的IDSupervisor关联Physician表,再第二次关联Person表匹配主管医师ID,取出主管姓名

对应PostgreSQL查询语句

SELECT 
    v.IDVolunteer,
    p1.name AS "Name",
    v.IDSupervisor,
    p2.name AS "Name"
FROM Volunteer v
-- 关联拿志愿者姓名
INNER JOIN Person p1 
    ON v.IDVolunteer = p1.IDPerson
-- 关联主管医师表
INNER JOIN Physician phy 
    ON v.IDSupervisor = phy.IDPhysician
-- 关联拿主管姓名
INNER JOIN Person p2 
    ON phy.IDPhysician = p2.IDPerson;

补充说明

如果存在没有分配主管的志愿者,需要保留这些志愿者的记录,只需要把对应主管关联的INNER JOIN改为LEFT JOIN即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:18:03