我有一個包含兩個表tblPlayers和tblMatches的數據庫。SQL查詢來計算多列中的條目
tblPlayers包含以下字段:playerID,playerName。
tblMatches包含matchID,scorer1ID,scorer2ID,scorer3ID。
我需要運行查詢來計算玩家獲得的總進球數,然後用他們的playerID返回。
我試過如下:
SELECT
tblPlayers.playerID, tblPlayers.playerName, count(*) AS goals
FROM
tblPlayers, matches
WHERE
(tblPlayers.playerID = tblMatches.scorer1ID
OR
tblPlayers.playerID = tblMatches.scorer2ID
OR
tblPlayers.playerID = tblMatches.goalscorer3ID)
GROUP BY tblPlayers.playerID
ORDER BY goals DESC
然而,這是不工作的要求,作爲計數功能不允許的事實,一個球員可以在一場比賽中得分超過一個目標(例如,如果玩家獲得三個目標,他的ID出現在scorer1ID字段,scorer2ID字段和scorer3ID字段中,但是當它需要爲3時,count只返回值1。
希望有道理,過去幾天我一直在撕掉我的頭髮,試圖解決這個問題!任何幫助不勝感激。
如果比賽中超過3個目標會發生什麼? – barsju 2012-04-05 21:39:21
你是這樣設置表格嗎?我認爲有更有效的方法來做到這一點。 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2012-04-05 21:41:49