在JOIN中选择适当的分页

Que*_*ueg 7 sql postgresql pagination join hsqldb

我有一个SQL语句

select * 
from users u left join files f
on u.id = f.user_id
where f.mime_type = 'jpg'
order by u.join_date desc
limit 10 offset 10
Run Code Online (Sandbox Code Playgroud)

关系是1-N:用户可能有很多文件.

这有效地选择了第二个10元素页面.

问题是此查询限制/抵消了连接表,但我想限制/偏移第一个(users)表中的不同行.

如何?我的目标是PostgreSQL和HSQLDB

Udo*_*ein 14

您需要首先限制外部表上的选择,然后将依赖表连接到结果.

select * from (select * from users limit 10 offset 10)  as u
left join files f
   on u.id = f.user_id
Run Code Online (Sandbox Code Playgroud)