ノードいいねのテーブルがあります。これはおおよそ次のようになります。
lid nid uid type
1 23 3 like
2 23 1 like
3 49 3 dislike
4 11 6 like
lid =このテーブルの一意のID、nid = "node"(コンテンツ)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
好き嫌いのスコアで各ノードを取得できます。内部結合は関係ありません。いくつかの(嫌いな)好きなものは、もはや存在しないユーザーからのものであり、参加はそれらを排除することです。
結果は次のようになります。
nid score type
307 4 like
307 1 dislike
404 24 like
type
次に、このクエリをでサブグループ化し、「好き」タイプ(好き/嫌い)ごとに最高スコアのノードIDを返すにはどうすればよいですか?
つまり。
nid score type
404 24 like
307 1 dislike