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

Postgres SQL中如何关联两个均引用另一张表同列的字段?

解答方案

你需要两次关联Accounts表,分别设置不同的别名映射from_id和to_id即可,具体SQL语句如下:

SELECT 
    t.date,
    t.description,
    t.amount,
    from_acc.name AS "from",
    to_acc.name AS "to"
FROM Transactions t
-- 关联转出账户
LEFT JOIN Accounts from_acc 
    ON t.from_id = from_acc.id
-- 关联转入账户
LEFT JOIN Accounts to_acc 
    ON t.to_id = to_acc.id;

补充说明

  • 这里用LEFT JOIN是为了避免当交易的转出/转入账户id为空时,整条交易记录被过滤,如果你能确保from_id和to_id都是非空有效值,替换成INNER JOIN也可以
  • from和to属于PostgreSQL的保留关键字,所以作为字段别名时需要用双引号包裹,否则会触发语法错误
  • 针对你给出的示例数据,执行上述语句后,就会得到你预期的查询结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:09:03