我对sql中的一个子查询有一点小问题。她的查询
SELECT st.title, count(q.id) as question_count, max(a.id) as maxid,
sum(case when a.answer is not null then 1 else 0 end) as answer_count, g.user_id as game_user_id,
a.game_id as a_game_id, a.modified as finished, (select modified as finished from answers a where a.id = g.maxid limit 1) as subquery
FROM games g
left join answers a on(a.game_id = g.id)
left join questions q on(a.question_id = q.id)
left join sessions s on(s.id = q.session_id)
left join sessiontypes st on(st.id = s.sessiontype_id)
WHERE g.user_id = 21
group by g.id
having(question_count = answer_count)
order by finished DESC;我希望该子查询返回来自answers的修改后的值,其中id是按游戏分组的最高值。
所以我尝试在子查询中使用select max(id) as maxid...和最大id。where a.id = maxid。不错的尝试,但行不通。mysql错误是这样的:Reference 'maxid' not supported (reference to group function)
有谁能给出一个提示如何解决这个问题吗?
https://stackoverflow.com/questions/38480641
复制相似问题