Привет всем. Ломаю голову как мне заставить MySQL отработать что бы не городить огород в php.
CODE ( SQL):
скопировать код в буфер обмена
SELECT t1.id, t1.user_id, nickname, imageurl, t1.title, competition_id, /* ( SELECT COUNT(id) FROM cms_competition_work t6 WHERE vote=( SELECT MAX(vote) FROM cms_competition_work t7 WHERE t6.competition_id=t7.competition_id ) ) winner */ FROM cms_competition_work t1 JOIN cms_users t3 ON t3.id = t1.user_id JOIN cms_user_profiles t4 ON t4.user_id = t1.user_id JOIN cms_competition t5 ON t5.id = t1.competition_id WHERE vote=( SELECT MAX(vote) FROM cms_competition_work t2 WHERE t1.competition_id=t2.competition_id ) LIMIT 6
Есть задача, вывести на морду сайта 6 победителей конкурсов. Все с одной стороны просто есть приз в каждом конкурсе есть победитель. Победитель получил приз. Все что кроме закомментированого, работает как надо. Но вот оказалось что в конкурсе может победить 2 или даже 3 человека, и надо поделить баллы на это количество человек. Кусок кода в коменте мне выдает общее количество призеров.. А как бы мне получить количество победителей в каждом competition_id?
Помогите пожалуста. Есть вариант в цикле попробовать разобрать совпадение ключей массива, но что-то я там пробовал вообще ни каких мыслей как это сделать... array_count_values мне не помог. Или я просто не умею им пользоваться.
(Добавление)
Подписаться забыл.
|