当前位置: 首页 > 知识库问答 >
问题:

联接选择中的正确分页

申屠项明
2023-03-14

我有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元素页面。

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

如何?我的目标是PostgreSQL和HSQLDB


共有1个答案

姚棋
2023-03-14

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

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
 类似资料:
  • 主要内容:全角和半角输入法的区别计算机起源于美国,C语言、 C++、 Java、 JavaScript 等很多流行的编程语言都是美国人发明的,所以在编写代码的时候必须使用 英文半角输入法,尤其是标点符号,初学者一定要引起注意。 例如,上节我们使用 puts 语句在显示器上输出内容: puts("小牛知识库"); 这里的括号、双引号、分号都必须是英文符号,而且是半角的。下图演示了如何将搜狗输入法切换到英文半角状态: 图1:搜狗输入

  • 我是在windows环境和使用maven编译我的项目。虽然我刚刚创建了项目并添加了各个Libaries的依赖项。 当我添加它们时,maven开始抱怨缺少,所以我在中添加了以下内容: 当我运行maven安装时,我得到了一个丢失的jar的错误,如下所示: 问题是在“”中,并且在环境变量中正确设置,但是maven仍然在jre文件夹中查找,错误消息为“”。 有趣的是:当我在dependency中设置完整路

  • 我想从两个select查询的内部联接中选择两列。我编写了一个连接三个表的查询,从结果中我只希望得到两列。但是我的查询显示错误。我使用的是oracle sql Developer。 我只想要名字和姓氏,但我得到了这样的错误:

  • 问题内容: 用逗号分隔 的CSS选择器部分的正确术语是什么? 在这些部分,什么是部分术语 通过组合子分隔 (空格,,,等)? 问题答案: 用逗号分隔 的CSS选择器部分的正确术语是什么? 这些称为复杂选择器 。整个逗号分隔的列表称为 选择器列表 。 在这些部分,什么是部分术语 通过组合子分隔 (空格,,,等)? 这些被称为复合选择器。 因此,选择器列表由一个或多个用逗号分隔的复杂选择器组成,每个复

  • 为了优化存储,在任何情况下均应使用最精确的类型。例如,如果列的值的范围为从1到99999,若使用整数,则MEDIUMINT UNSIGNED是好的类型。在所有可以表示该列值的类型中,该类型使用的存储最少。 用精度为65位十进制数(基于10)对DECIMAL列进行所有基本计算(+、-、*、/)。参见11.1.1节,“数值类型概述”。 使用双精度操作对DECIMAL值进行计算。如果准确度不是太重要或如

  • 校验者: 翻译者: @李孟禹 通常,解决机器学习问题的最困难的部分可能是找到恰当的的评估器(estimator)。 不同的评估器更适合不同类型的数据和不同的问题。 下面的流程图是一些粗略的指导,可以让用户根据自己的数据来选择应该尝试哪些评估器。 点击下图的任何评估器,查看其文档。