sql - 是否可以将 LIMIT 应用于分组结果,但仍获取所有行?

标签 sql mysql search-engine

我有一张包含书籍的表格、一张包含作者的表格以及一张将书籍与作者相关的表格。一本书可以有多个作者,所以当我对 this results 进行大查询时如果这本书有多个作者,我可能会在每本书中获得不止一行。然后,我将 PHP 中的结果合并在一起,但问题是,如果我 LIMIT - OFFSET 分页查询,则每页可能会得到少于 25 本书(所需的)独特书籍。

任何人都可以想到一种(或者是否有内置)方法来让 LIMIT 影响分组查询,但仍然获得所有结果?我不想先执行一个分组查询,然后执行其他查询来获取每位作者,因为我失去了缓存结果的好处。

如果没有,我可能会预先保存缓存的结果,然后分别查询每个作者。

最佳答案

我在不同的用例(剧院预订系统)中遇到了完全相同的问题,经过一些研究和测试,我使用了预通过方法。它快速、干净,即使有大量行(在我的例子中,超过 600k)也能很好地工作。希望能帮助到你! :)

关于sql - 是否可以将 LIMIT 应用于分组结果,但仍获取所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4716396/

相关文章:

sql - 将行 ID 添加到 Snowflake SQL 中的表

sql - 查询不会将 nvarchar(30) 转换为十进制

MySQL Inner 加入最近 7 天找到最高销售额

mysql - MySQL 中 PostgreSQL 的 array_agg() 和 array_to_string

mysql - 慢查询挂起服务器

user-interface - 多语言网站的最佳做法是什么?

sql - 使用 SQL,如何在时间序列中长时间间隔后删除案例?

php - 无法将数据库下载为 CSV

c# - 如何为知识库系统构建搜索引擎?

seo - 防止谷歌索引目录的最佳方法