SQL의 하위 쿼리에 약간의 문제가 있습니다. 그녀의 쿼리mysql 하위 쿼리 쿼리 필드에서 선택하십시오.
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 –