我经营一个网站,用户可以在其中发布项目(例如图片)。这些项目存储在MySQL数据库中。
我想查询最后十个发布项目,但任何单个用户最多只能约束3个项目。
最好的方法是什么?我的首选解决方案是对SQL查询施加约束,以请求最后十项。但是非常欢迎有关如何设置数据库设计的想法。
提前致谢!
BR
使用关联的子查询非常容易:
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以后添加了较大的均值
id
相关子查询是一个强大的工具!:-)