我有节点喜欢的一个表,它看起来大致是这样的:按分组列排序?
lid nid uid type
1 23 3 like
2 23 1 like
3 49 3 dislike
4 11 6 like
盖此表=唯一的ID,NID =“节点”(内容)的ID,UID =用户ID和类型是自解释的。
与此查询:
SELECT nid, COUNT(lid) AS score, type
FROM node_likes
INNER JOIN users ON node_likes.uid = users.uid
GROUP BY nid, type
我可以得到它就像每个节点和不喜欢的分数。内部连接无关紧要;一些(dis)喜欢来自不再存在的用户,并且联合会消除它们。
结果看起来是这样的:
nid score type
307 4 like
307 1 dislike
404 24 like
我怎么能那么子组此查询type
,并返回得分最高的节点ID为每一个“喜欢”型(喜欢/不喜欢)?
即,
nid score type
404 24 like
307 1 dislike
ORDER BY DESC分给你顶NID的。我不确定你的分组是什么意思... – Vatev 2012-07-24 17:42:27
ORDER BY得分DESC将返回最高得分,不论其类型如何。我希望它能够返回每种类型的最高分数。 – felamaslen 2012-07-24 17:43:25
混淆,不应该为喜欢/不喜欢的最高分进入nid = 404? – ajreal 2012-07-24 17:52:09