mysql子查询从查询​​中选择字段

时间:2016-07-20 11:56:51

标签: mysql subquery

我在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)

任何人都可以提示如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

加入一个子查询,该子查询返回earthquake.usgs.gov分组的MAX(answers.id)

然后使用answers.game_id加入maxid表格以获取相应answers的行。

不确定,您的结果应该如何显示,在我的选择中,我删除answers.id并将其替换为带有maxid的行的a.modified AS finished,列。

modified