我有三個表,結構如下所示。在MySQL中的不同值的總和
該表(稱爲contest_submissions
)存儲提交和競賽的關係。
ContestID | SubmissionID
1 1000
1 1001
1 1002
1 1003
第二個表(稱爲submissions
)存儲提交的詳細信息:
SubmissionID | ProblemID | User | Score | Time
1000 1000 A 100 1000
1001 1000 A 40 1250
1002 1001 A 50 1500
1003 1001 B 20 1750
另一個表(稱爲contest_contestants
)是由以下組成:
ContestID | User
1 A
1 B
我寫了下面SQL:
SELECT *, (
SELECT SUM(score)
FROM contest_submissions cs
NATURAL JOIN submissions
WHERE user = cc.user
AND SubmissionID = cs.SubmissionID
) AS TotalScore, (
SELECT SUM(Time)
FROM contest_submissions cs
NATURAL JOIN submissions
WHERE user = cc.user
AND SubmissionID = cs.SubmissionID
) AS TotalTime
FROM contest_contestants cc
WHERE contestID = 1
我得到下面的結果(假設ContestID = 1
):
contestID | User | Total Score | Total Time
1 A 190 3750
1 B 20 1750
其中190 = 100 + 40 + 50
。
不過,我希望得到以下結果:
contestID | User | Total Score | Total Time
1 A 150 2500
1 B 20 1750
其中150 = MAX(100, 40) + 50
,因爲來自同一個問題100
和40
(具有相同ProblemID
)。
我該怎麼辦?
順便說一句,我正在使用MySQL。
嗨,那裏。我更新了我的問題。如果我需要查詢中的更多信息,該怎麼辦? –
我想你需要調整查詢 –