Вывод новостей в зависимости от кол-ва комментариев и текущей даты в Yii2?

Всем Привет.
Столкнулся с такой задачей, Есть таблица с Новостями и Комментариями, как отсортировать вывод Новостей Desc в зависимости от даты публикации, проблем не возникает
'query' => News::find()->where(['visibility'=>1])->orderBy('date DESC');

Не пойму как средствами Yii2 или чистым SQL запросом выбрать новости и отсортировать их DESС в зависимости от кол-ва Комментариев и даты публикации DESС.

Забыл упомянуть, таблица с Комментариями расположена в Другой Базе данных

Буду благодарен любой помощи.
Заранее Спасибо.
  • Вопрос задан
  • 209 просмотров
Решения вопроса 2
Не?
SELECT *
FROM news n
  INNER JOIN news_comments nc ON n.news_id = nc.news_id
GROUP BY n.news_id
ORDER BY COUNT(nc.comment_id) DESC, n.date DESC


Тоже самое можно и с помощью Query составить

News::find()->where(['news.visibility'=>1])
->innerJoin(['nc' => NewsComments::tableName()], 'nc.news_id = news.id')
->groupBy('news.id')
->orderBy('COUNT(nc.id) DESC, news.date DESC');
Ответ написан
@PRC Автор вопроса
Если у Вас таблицы находятся в разных БД, как у меня то перед таблицей комментариев, следует указать название Базы данных "db_name"
News::find()->where(['news.visibility'=>1])
->innerJoin(['nc' => 'db_name' . NewsComments::tableName()], 'nc.news_id = news.id')
->groupBy('news.id')
->orderBy('COUNT(nc.id) DESC, news.date DESC');

На локалке этот вариант работает, на хостинге нет, пишет:
command denied to user 'u670329544_test2'@'10.2.1.31' for table 'brk_comments'

Буду разбираться, еще раз спасибо Abdula Magomedov
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы