Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Запрос на выборку с приоритетом


Автор: depodimon 7.2.2011, 09:10
Привет! Вообщем нужен запрос на выбор рандомных 15 фотографий, но чтобы 9 их них были с приоритетом до 300, 4 с приоритетом от 300 до 3000, 2 фотки с 3000 до 5000 и последняя от 5000 и до 7000

Сейчас сделал так:

Код

$res = mysql_query("
(SELECT * FROM awards_photo t1 INNER JOIN users t2 ON t1.user_id=t2.user_id WHERE t2.prioritet>=3000 AND t1.award_id=1 AND t1.user_id!='$logname' AND t1.who_delete='0' ORDER by rand() LIMIT 3)
UNION ALL
(SELECT * FROM awards_photo t1 INNER JOIN users t2 ON t1.user_id=t2.user_id WHERE t2.prioritet>=300 AND t2.prioritet<=3000 AND t1.award_id=1 AND t1.user_id!='$logname' AND t1.who_delete='0' ORDER by rand() LIMIT 4)
UNION ALL
(SELECT * FROM awards_photo t1 INNER JOIN users t2 ON t1.user_id=t2.user_id WHERE t2.prioritet<300 AND t1.award_id=1 AND t1.user_id!='$logname' AND t1.who_delete='0'  ORDER by rand() LIMIT 9)
");



Но мне кажется что это калечно, подскажите как правильно будет выглядеть запрос с таким условиями. 

Автор: skyboy 7.2.2011, 09:56
с данными условиями иначе никак.
насчет тормозов order by rand() в курсе? как много у тебя фотографий всего?

Автор: depodimon 7.2.2011, 10:57
где-то 3000

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)