这是我的场景的简化版本:
- 我有一个名为 Project 的表,我通过“id”字段引用它。
- 我有一个名为 Photo 的表,其中有一个名为“project_id”的字段,我用它来将多张照片关联到一个项目。照片表还有一个自动递增的“id”字段,我用它来进行排序等等。
这是我想要完成的:对于项目 ID 值的集合,我希望检索添加到每个项目的最后 5 张照片——当然,理想情况下是在单个查询中。 :-)
换句话说,我不想强加单个查询限制,理想情况下我希望为每个项目指定返回照片数量的限制。
我目前将此实现为每个项目一个查询,因此 N 个项目 = N 个查询(一个好的缓存策略肯定会减少伤害,但稍后会出现)。
谁有解决办法?
谢谢。
最佳答案
关于 MySQL 中的“最后 n 项”问题,请看这里:How to select maximum 3 items per users in MySQL? (它在最佳答案中是正确的)。
当您从那里获取它时,您所缺少的只是与您的 Projects
表的 JOIN,这应该很容易做到。
关于sql - 查询与记录键集引用的每条记录关联的 N 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/314187/