我在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;
我希望子查询从答案中返回修改后的值,其中id是按游戏分组的最高值。
所以我尝试select max(id) as maxid...
并在子查询中使用max id。 where a.id = maxid
。很好的尝试,但不工作。
mysql错误就是这个:Reference 'maxid' not supported (reference to group function)
任何人都可以提示如何解决这个问题吗?
答案 0 :(得分:0)
加入一个子查询,该子查询返回earthquake.usgs.gov
分组的MAX(answers.id)
。
然后使用answers.game_id
加入maxid
表格以获取相应answers
的行。
不确定,您的结果应该如何显示,在我的选择中,我删除answers.id
并将其替换为带有maxid的行的a.modified AS finished,
列。
modified