admin

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

sql

我经营一个网站,用户可以在其中发布项目(例如图片)。这些项目存储在MySQL数据库中。

我想查询最后十个发布项目,但任何单个用户最多只能约束3个项目。

最好的方法是什么?我的首选解决方案是对SQL查询施加约束,以请求最后十项。但是非常欢迎有关如何设置数据库设计的想法。

提前致谢!

BR


阅读 144

收藏
2021-05-10

共1个答案

admin

使用关联的子查询非常容易:

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

该查询假定id以后添加了较大的均值

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

2021-05-10