我有使用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 –