@EVOSandru6

Как сделать сортировку по простому и сложному параметру в mysql?

Добрый день,

Есть 3 таблицы: Пользователи, предложения, рейтинги. Нужно, чтобы сначала шла сортировка по рейтингам по убыванию, далее по предложеным ценам из предложения по возрастанию. Чтобы сначала были более приоритетные предложения:

Пользователи:
--------------------
m_users
--------------------
id
name

--------------------

Предложения:
--------------------
mс_offers
--------------------
id
user_id
price

--------------------

Рейтинги:
--------------------
mс_offers
--------------------
id
user_id
rate

--------------------

Примерно накидал бредовенько:

SELECT * FROM (SELECT * FROM m_users LEFT JOIN mc_rating ON m_users .id = mc_rating.user_id ORDER BY ( SUM(rate) / COUNT(rate) GROUP BY mc_rating.user_id ) as users  LEFT JOIN mc_offersON  users.id = mc_offers.user_id ORDER BY mc_offers.price


Помогите до ума запрос довести.

Я так понимаю, чтобы в AR засунуть хороший вариант запроса, то это только с помощью findBySql можно сделать?!
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ответы на вопрос 1
talgatbaltasov
@talgatbaltasov
Freelancer
SELECT * FROM m_users 
LEFT JOIN mc_rating ON m_users .id = mc_rating.user_id 
LEFT JOIN mc_offers ON  users.id = mc_offers.user_id
ORDER BY ( SUM(rate) / COUNT(rate) GROUP BY mc_rating.user_id ) DESC, mc_offers.price

Попробуй вот это или я неправильно понял тебя
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы