如何在MySQL中为每个用户选择最多3个项目?

Nik*_*las 11 mysql sql database

我运行一个用户可以发布项目(例如图片)的网站.这些项目存储在MySQL数据库中.

我想查询最后十个发布的项目,但最多3个项目的约束可以来自任何单个用户.

这样做的最佳方式是什么?我首选的解决方案是一个约束,它放在请求最后十个项目的SQL查询上.但是关于如何设置数据库设计的想法非常受欢迎.

提前致谢!

BR

Inc*_*tly 5

使用相关的子查询非常简单:

SELECT `img`.`id` , `img`.`userid`
FROM `img`
WHERE 3 > (
SELECT count( * )
FROM `img` AS `img1`
WHERE `img`.`userid` = `img1`.`userid`
AND `img`.`id` > `img1`.`id` )
ORDER BY `img`.`id` DESC
LIMIT 10 
Run Code Online (Sandbox Code Playgroud)

该查询假定id稍后添加更大的方法

相关的子查询是一个强大的工具!:-)

  • 这不会排除所有拥有超过3个项目的人,而不是简单地将从他们获取的数字限制为3个吗? (3认同)