sql - 从两个表中每组选择 4 行

标签 sql mysql

我有 2 个表,它们以一对多的关系连接。第一个名为 papers 的表有一个 id,其他命名的图片有 paperid 作为对 paperid 的引用。

我要做的是选择与每篇论文相关的所有图片。我可以通过建立连接来做到这一点,问题是我不知道如何限制论文的选择,但仍然想在限制范围内获取每篇论文的所有图片。

限制 = 4

论文1:3张图片
论文2:16张图片
论文3:10张图片
论文4:2张图片

希望你的理解能有所帮助,它应该相当简单,但我只是无法得到正确的解决方案。

最佳答案

这是“每组 N 个”问题,它相当简单。你想要的不是像大多数查询那样的集合交集,所以你必须做一些复杂的事情来强制结果。查看您的问题的这些重复项:

MySQL Query - recent entries per group

Using LIMIT within GROUP BY to get N results per group?

http://www.artfulsoftware.com/infotree/queries.php#104

总是有另一种选择,即针对每篇匹配的论文针对其 4 张图片发出一个查询。

关于sql - 从两个表中每组选择 4 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4957195/

相关文章:

MySql 查询显示错误的时间,但日期是正确的

java - 通过 Hibernate 从 SQL 数据库中获取随机对象

mysql - 从架构导入数据时打开的文件过多 (MySQL)

SQL:从谓词逻辑到 SQL SELECT

php - SQL查询以查找欠债三个月或更长时间的用户

php - 使用 jquery ajax 和 php 将动画表单提交到 mysql 数据库

javascript - 将查询结果的颜色分配给 div

java - 无法向mysql插入数据

sql - 多行合并为单列

mysql - 将 Async 与 JDBC 结合使用时,doInBackground() 不起作用