【问题标题】:Postgres Join Query for a table referencing itself引用自身的表的 Postgres 联接查询
【发布时间】:2021-12-20 15:16:43
【问题描述】:

我有一个带有以下架构的表徽章

create table badges (
 id, serial primary key,
 title, text not null,
 next_badge_id: int references badges,
 .
 .
)

给定表格:

id |      title       | next_badge_id
----+------------------+---------------
  1 | Bronze Partner   |             2
  2 | Silver partner   |             3
  3 | Gold partner     |             4
  4 | Diamond partner  |             5
  5 | Platinum partner |

我如何编写一个查询来返回这个:

id |      title       | next_badge
----+------------------+---------------
  1 | Bronze Partner   | Silver partner
  2 | Silver partner   | Gold partner
  3 | Gold partner     | Diamond partner 
  4 | Diamond partner  | Platinum partner
  5 | Platinum partner |

【问题讨论】:

    标签: sql postgresql join


    【解决方案1】:

    可以使用left join查询

    示例数据和查询结构:dbfiddle

    select
      b1.id,
      b1.title,
      b2.title as next_badge
    from
      badges b1
      left join badges b2 on b1.next_badge_id = b2.id
    

    【讨论】:

    • 是的,我一直在做的是..on b1.id = b2.next_badge_id。我的错。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    相关资源
    最近更新 更多