1
sqlのサブクエリに少し問題があります。 彼女のクエリmysqlサブクエリーselect from field with
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...
とサブクエリの最大IDを使用しようとしました。 where a.id = maxid
。素敵な試みですが、仕事はしません。 mysqlエラーはこれです:Reference 'maxid' not supported (reference to group function)
誰かがそれを解決するヒントを教えていただけますか?
私はあなたが何を意味していると思いますか?クエリは機能しません。 ;) –
データはありますか? +予想される結果、このクエリのエラーメッセージ+私はサブクエリのエイリアスを混乱させたと思うが、idの後ろにgame_idの後に置く。クエリで修正されました – Philipp
はい、問題でした。有難うございます。私は何をしたいのですか? このSQLは非常に混乱しています:P –