例如,我有很多用户,他们每个人都选择了他们喜欢的游戏,现在在他们推荐的mysql行中(竖起拇指)。示例数据库:
(昵称):Leonard,(推荐):999,(游戏):Mario;(昵称):Nikky,(推荐):1999,(游戏):回击(昵称):Sam,(推荐):199,(游戏):AION
现在我要做的是为每个游戏选择最推荐的用户,而不做双倍的mysql请求,这可能吗?
从用户推荐的DESC命令中选择*
这只是显示所有的建议数量排序,但我想要的是显示1与最多的建议为每个游戏,因为有许多用户有一堆推荐相同的游戏。
发布于 2016-02-26 22:27:51
可以使用GROUP BY子句根据一列组合多条记录,并使用COUNT()进行计数。很难不看到完整的模式,但如下所示:
SELECT users.*, COUNT(users.recommends) AS total_recommends FROM users ORDER BY recommends DESC GROUP BY game
发布于 2016-02-26 22:34:07
你可以用组。
SELECT users.*, MAX(user.recommends) AS maxrec GROUP BY game;发布于 2016-02-26 22:47:41
SELECT t1.*
FROM users AS t1
LEFT JOIN users AS t2
ON t1.game = t2.game AND t1.recommends < t2.recommends
WHERE t2.recommends IS NULL小提琴演示:http://sqlfiddle.com/#!9/43486/13/0
https://stackoverflow.com/questions/35662795
复制相似问题