我設法創建了一個查詢,它甚至可以作業。
SELECT voterID,vote,nick as player
FROM
trust LEFT JOIN players
ON trust.playerID=players.playerID
ORDER BY trust.vote DESC, trust.playerID DESC
這給了我所有投票的完整串列,但我想對每個玩家的投票求和,所以我得到每個玩家 1 行,總共有 1 個信任點。(可以是正數或負數。每個投票 1 或 -1,每個選民)
表信任:
CREATE TABLE `trust` (
`rowID` int(10) UNSIGNED NOT NULL,
`playerID` int(11) UNSIGNED NOT NULL,
`voterID` int(11) UNSIGNED NOT NULL,
`vote` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `trust` (`rowID`, `playerID`, `voterID`, `vote`) VALUES
(25, 2187, 1, 1),
(26, 23193, 1, 1),
(27, 2050, 1, 1),
(29, 3714, 1, 1),
(31, 1, 2187, 1),
(32, 30363, 29937, 1),
(33, 15837, 26102, 1),
(34, 30058, 26102, 1),
(35, 30539, 26102, -1),
(36, 28382, 26102, -1),
(37, 18692, 26102, 1),
(38, 6440, 14143, 1),
(39, 15069, 8306, 1),
(40, 2050, 2187, 1),
(41, 3233, 1, 1),
(42, 12664, 26102, 1),
(43, 30539, 2187, -1),
(44, 28382, 2187, -1),
(45, 30539, 1, -1),
(46, 10138, 1, 1);
預期結果:名單和總票數
uj5u.com熱心網友回復:
您可以player在投票的聚合查詢中加入該表:
SELECT nick AS player, sum_votes
FROM players p
JOIN (SELECT playerid, SUM(vote) AS sum_votes
FROM trust
GROUP BY playerid) t ON p.playerid = t.playerid
ORDER BY 2 DESC
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/406045.html
標籤:
上一篇:MySQL將資料合并為一列
