我有使用MAX()和GROUP BY的問題。 我旁邊表:MAX()和GROUP BY的相關子查詢
personal_prizes
___________ ___________ _________ __________ | id | userId | specId| group | |___________|___________|_________|__________| | 1 | 1 | 1 | 1 | |___________|___________|_________|__________| | 2 | 1 | 2 | 1 | |___________|___________|_________|__________| | 3 | 2 | 3 | 1 | |___________|___________|_________|__________| | 4 | 2 | 4 | 2 | |___________|___________|_________|__________| | 5 | 1 | 5 | 2 | |___________|___________|_________|__________| | 6 | 1 | 6 | 2 | |___________|___________|_________|__________| | 7 | 2 | 7 | 3 | |___________|___________|_________|__________| prizes ___________ ___________ _________ | id | title | group | |___________|___________|_________| | 1 | First | 1 | |___________|___________|_________| | 2 | Second | 1 | |___________|___________|_________| | 3 | Newby | 1 | |___________|___________|_________| | 4 | General| 2 | |___________|___________|_________| | 5 | Leter | 2 | |___________|___________|_________| | 6 | Ter | 2 | |___________|___________|_________| | 7 | Mentor | 3 | |___________|___________|_________|
所以,我需要選擇用戶最高頭銜。 例如id = 1的用戶必須有獎品'Second','Ter'。 我不知道如何實現它在一個查詢((( 所以,首先,我儘量選擇用戶最高規範ID 接下來我嘗試:
SELECT pp.specID
FROM personal_prizes pp
WHERE pp.specID IN (SELECT MAX(pp1.id)
FROM personal_prizes pp1
WHERE pp1.userId = 1
GROUP BY pp1.group)
而且它不工作 。所以請幫我解決這個問題 如果你幫助爲用戶挑選獎品,它將會很棒!
什麼是你所期望的輸出? –
你如何加入'個人獎品'與'personal_prizes' – Ali
@Kannan Kandasamy在此查詢-2和6用戶id = 1。一般 - 'Second'和'Ter'這個用戶。我使用MySQL –