sql - JOIN 选择中的正确分页

标签 sql postgresql join pagination 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

1-N关系:用户可能有多个文件。

这实际上选择了第二个 10 元素页面。

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

如何?我的目标是 PostgreSQL 和 HSQLDB

最佳答案

需要先将select限制在outer table上,再将依赖表join到结果上。

select * from (select * from users where f.mime_type = 'jpg' limit 10 offset 10)  as u
left join files f
   on u.id = f.user_id

关于sql - JOIN 选择中的正确分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15897055/

相关文章:

SQL Server 计算列

ruby-on-rails - 如何增量填充数据仓库?

SQL查询查找具有特定前缀的记录

mysql - 从不同表中选择不同类型的列,而不使用联接

Mysql查询显示两个表中不匹配的记录,如旧记录和新记录

sql - 是什么原因导致 “Syntax error in INSERT INTO statement”

sql - 为什么 Docker 中的 MSSQL 在 sql 查询中返回 "The last operation was terminated because the user pressed CTRL+C"?

sql - plpgsql中case语句的返回值

sql - Postgresql:一个列可以有多个索引,并且可以根据用途使用不同的索引

python - 多个插入语句失败 postgresql/psycopg2