PostgreSQL自引用badges表如何编写关联查询返回下一级徽章名称
实现方案
你可以通过对badges表做自左关联查询实现需求,将当前行的next_badge_id与同表的id字段关联,取关联行的title作为next_badge输出即可。
参考SQL语句
SELECT b1.id, b1.title, b2.title AS next_badge FROM badges b1 LEFT JOIN badges b2 ON b1.next_badge_id = b2.id ORDER BY b1.id ASC;
说明
- 这里使用
LEFT JOIN而非内连接,是为了保留没有下一级徽章的Platinum partner记录,它的next_badge字段会自动返回空值,和你需要的输出结果一致 - 末尾的
ORDER BY可以保证输出结果按id升序排列,和原有数据顺序对齐
内容的提问来源于stack exchange,提问作者Urchboy
相关产品推荐
相关产品推荐

