Чем заменить вложенный подзапрос?

mulder

Guest
Чем заменить вложенный подзапрос?

Мне нужно выбрать из базы сумму лучших (максимальных) оценок по каждому предмету для всех учеников.
Но MySQL не хочет - говорит неправильное использование group.
Я знаю как это записать вложенным подзапросом:

селект сумму(оценок)
где оценка=(селект макс(оценок))

Но насколько я знаю MySQL не поддерживает вложенные поздапросы. Как записать это используя что-то другое.
 

dr.vint

Guest
попробуй создай временную таблицу, в нее выбери

макс(оценок))

а из нее

сумму(оценок)
 

mulder

Guest
Автор оригинала: dr.vint
попробуй создай временную таблицу, в нее выбери
макс(оценок))
а из нее
сумму(оценок)
А куда ее выбрать, вернее можно ли как-то хранить временную таблицу, потому что если делать это все в одном селекте то появляется такое выражение сумма(макс(времен.оценки))
так на такое выражение оно мне пишет "неправильное использование group"
 

predator

web designer
у меня похожая ситуация

4.1 точно поддерживает
только ругается, в этом ты прав : (

-~{}~ 22.06.05 19:27:

есть подозрение что я решил всётаки проблему : ))

PHP:
			SELECT (
				SELECT s.id
				FROM s_stuff s
				WHERE s.contest_id=c.id
				ORDER BY (
					SELECT SUM(v.points)
					FROM s_voices v
					WHERE v.stuff_id=s.id
					GROUP BY s.id
				) DESC
				LIMIT 1
			) winner
			FROM s_contests c
			WHERE c.time_vend<"1119453314" 
			ORDER BY c.time_vend DESC
			LIMIT 4
-~{}~ 22.06.05 19:32:

небольшое пояснение:

получаем id работ получивших первое место в четырёх последних прошедших соревнованиях
"1119453314" - это time()
 
Сверху