Ich habe ein kleines Problem mit einer Unterabfrage in SQL. sie die Abfragemysql Unterabfrage mit Feld aus Abfrage auswählen
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;
ich will, dass die Unterabfrage den geänderten Wert von Antworten gibt, wo die ID durch Spiel die höchste gruppiert ist.
so versuchte ich select max(id) as maxid...
und die maximale ID in der Unterabfrage verwenden. where a.id = maxid
. Netter Versuch, aber nicht arbeiten. mysql Fehler ist dieser: Reference 'maxid' not supported (reference to group function)
kann jemand einen Hinweis geben, wie man das löst?
Hm, ich glaube ich weiß was du meinst. aber deine Abfrage funktioniert nicht. ;) –
Kannst du Daten angeben? + erwartetes Ergebnis, + Fehlermeldung für diese Abfrage. Obwohl ich denke, dass ich den Alias in der Unterabfrage durcheinander gebracht habe, lege ihn hinter game_id statt nach id. In der Abfrage behoben – Philipp
Ja, das war das Problem. Danke für das. Nein, ich bekomme, was ich will :) diese sql ist sehr verwirrend: P –