我掙扎有點與查詢我試圖建立。對於我想要顯示得分前10的遊戲。顯示MAX值與加入
我的表看起來像這樣:
選手= ID,playername,用戶名 得分= ID,跟蹤,汽車,bestscore,totalscore,player_id(外鍵player.id)
對於TOP10我想顯示玩家名稱,總分,汽車和賽道。
當前查詢我的是:
SELECT p.playername, MAX(s.totalscore) totalscore, s.car, s.track
FROM player p
INNER JOIN score s on p.id = s.player_id
GROUP BY p.playername
ORDER BY MAX(s.totalscore) DESC
LIMIT 10
這似乎是做工精細,除了一個問題。如果用戶在軌道1分50與汽車1,然後把比分60在軌道1車2,我看到車1上查詢。它似乎並沒有得到最高分的相關車,如果這個用戶。
我希望這是有道理的什麼,我只是告訴。
提前致謝!
編輯:
SELECT p.playername, MAX(s.totalscore) as totalscore, s.car, s.track
FROM (SELECT * FROM score ORDER BY totalscore DESC) s
INNER JOIN player p ON s.player_id = p.id
GROUP BY p.playername
ORDER BY MAX(s.totalscore) DESC
LIMIT 10
此查詢,似乎這樣的伎倆。我一直在嘗試,結果集正是我的意思。它有什麼好處?我不善於使用SQL,僅僅因爲它的作用並不總是意味着它很好,是嗎?
考慮提供合適的DDL(和/或sqlfiddle)與期望的結果集 – Strawberry
對不起,我不知道你的意思。我對SQL很陌生,以普通語言來取悅。 – Bose321
你也是google新手? – Strawberry