您必须加入数据,也就是说,您需要为每个留言板留言投票 .
让我们假设为了简单起见,您有以下表格:
Message
----
id INT
messsageText VARCHAR(5000)
和
MessageVotes
------------
messageId INT (references the `id` column in table Message)
voteValue INT (suppose it can be +1 or -1, whatever)
votingIp VARCHAR(100)
然后你可以做类似的事情
SELECT
m.id,
m.messageText,
SUM(mv.voteValue) AS votes
FROM
Message AS m,
MessageVotes AS mv
WHERE
mv.messageId = m.id
GROUP BY
m.id, m.messageText /* here you need to place every field you `select` from Message */
ORDER BY
SUM(mv.voteValue) DESC
甚至更好:
SELECT
m.id,
m.messageText,
SUM(mv.voteValue) AS votes
FROM
Message AS m
LEFT JOIN MessageVotes AS mv ON mv.messageId = m.id
GROUP BY
m.id, m.messageText
ORDER BY
SUM(mv.voteValue) DESC
看到: