xInOrK
Новичок
проблема с sql запросом
Есть три таблицы: users, users_pictures, pictures_votes
Так вот у каждого пользователя может быть N-ое количество фоток, на каждой фотке есть число голосов и сумма оценок.
Мне надо выбрать 100 фотографий, с самой высокой оценкой по одной от пользователя.
Сейчас я делаю так:
Потом сортирую данные и уже ставлю LIMIT 100 при выборке из той таблицы top
Можно ли как-то это сделать одним запросом? Просто когда людей станет очень много и фотографий тоже то очень много времени будет забирать создание таблицы top.
-~{}~ 25.02.06 10:46:
ап. не реально ?
Есть три таблицы: users, users_pictures, pictures_votes
Так вот у каждого пользователя может быть N-ое количество фоток, на каждой фотке есть число голосов и сумма оценок.
Мне надо выбрать 100 фотографий, с самой высокой оценкой по одной от пользователя.
Сейчас я делаю так:
PHP:
SELECT `id`, `login`, `birthday` FROM `users` WHERE `sex`=1
while(list(...)){
SELECT up.`id`, up.`thumbnail`, (pv.`sum`/pv.`num`) as `score`, pv.`num`
FROM `users_pictures` as `up`
LEFT JOIN `pictures_votes` as `pv` ON up.`id`=pv.`pid`
WHERE up.`uid`='$uid' AND up.`accepted`=1 AND (pv.`sum`/pv.`num`)>='5' AND pv.`num`>='5'
ORDER by (pv.`sum`/pv.`num`) DESC, pv.`num` DESC LIMIT 1
//тут записываю полученные данные в отдельную таблицу (предположим top)
}
Можно ли как-то это сделать одним запросом? Просто когда людей станет очень много и фотографий тоже то очень много времени будет забирать создание таблицы top.
-~{}~ 25.02.06 10:46:
ап. не реально ?
