使用下一个和上一个对象ID在查询集中注释对象

时间:2017-11-13 02:31:03

标签: django postgresql orm

如何在Django ORM查询集中注释对象,以便每个项目包含之前(上一个)和下一个(下一个)之后的对象的ID?我正在使用PostgreSQL和Django 1.11。

1 个答案:

答案 0 :(得分:1)

您可以使用window functions lag() and lead()

SELECT *
     , lag(id)  OVER (ORDER BY id) AS prev_id  -- same order as query
     , lead(id) OVER (ORDER BY id) AS next_id  -- same order as query
FROM   tbl
ORDER  BY id;