我需要通過計算他的玩家ID出現在另一張桌子上的次數來計算玩家玩過的遊戲數量,下面是我玩過的代碼:INNER JOIN中的COUNT()行值
SELECT players.playerID, players.fName, players.lName, matches.playerID, COUNT(matches.playerID) AS 'gamesPlayed'
FROM players
INNER JOIN matches
ON matches.playerID = players.playerID
WHERE players.playerID=matches.playerID
ORDER BY gamesPlayed"
目前有2名玩家玩過2場比賽。
當前代碼返回1個玩家玩過4場比賽。
我想讓COUNT(matches.playerID)返回唯一的匹配,其中players.playerID = matches.playerID。
任何幫助非常感謝!如果你想甚至誰發揮零個遊戲,那麼玩家
SELECT p.playerID, p.fName, p.lName, COUNT(*) AS gamesPlayed
FROM players p INNER JOIN matches m
ON p.playerID = m.playerID
GROUP BY p.playerID, p.fName, p.lName
ORDER BY gamesPlayed
:
SELECT p.playerID, p.fName, p.lName, COUNT(m.playerID) AS gamesPlayed
FROM players p LEFT JOIN matches m
ON p.playerID = m.playerID
GROUP BY p.playerID, p.fName, p.lName
ORDER BY gamesPlayed
我用COUNT(m.playerID)
代替COUNT(*)
在上面的原因是因爲COUNT(*)
在首位:您的查詢缺少'GROUP BY',第二個 - 請檢查COUNT'接受的參數(在這個查詢中它與COUNT(*)'沒有什麼不同) – zerkms 2015-01-20 23:46:05
包含一個由查詢組成的組現在可以工作了,謝謝zerkms – Neil 2015-01-20 23:56:38