Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Есть одна таблица с полями
id
par
message
где у par 0 - если это новость и любое другое число это комментарий к новости.
Подскажите пожалуйста как мне подсчитать одним запросом количество комментариев к новости?
If you think it’s expensive to hire a professional to do the job, wait until you hire an amateur.
Не в сети
Тут только count, а мне необходимо получить все новости и одновременно подсчитать к каждой кол-во комментариев.
Попробуйте так:
$query = DB::table('table as news')
->select('news.id', 'news.par', 'news.message')
->addSelect(DB::raw('count(comments.id) as comments_count'))
->leftJoin('table AS comments', 'comments.par', '=', 'news.id')
->where('news.par', 0)
->groupBy('news.id');
var_dump($query->get());
Не в сети
Попробуйте так:
$query = DB::table('table as news') ->select('news.id', 'news.par', 'news.message') ->addSelect(DB::raw('count(comments.id) as comments_count')) ->leftJoin('table AS comments', 'comments.par', '=', 'news.id') ->where('news.par', 0) ->groupBy('news.id'); var_dump($query->get());
Спасибо большое! Это работает.
Тут только count
Там можно заметить не только count, так-же ниже пример
$total = DB::table('users')->sum('votes');
Если честно, вопрос ваш я не понял
Есть одна таблица с полями
Теперь вы делаете джойн на другую таблицу?
где у par 0 - если это новость и любое другое число это комментарий к новости.
т.е. я так понял, что всё в одной табличке и новости и комменты. И если - 0, то это новость, если любое другое число, то это комментарий к новости.
Вообще, я бы создал поле в новостях к примеру count_comment, и писал туда число комментариев к данной новости, таким образом вы избавитесь от куча джойнов в дальнейшем.
Изменено Artdevue (15.01.2014 08:34:36)
If you think it’s expensive to hire a professional to do the job, wait until you hire an amateur.
Не в сети
Виталий пишет:Тут только count
Там можно заметить не только count, так-же ниже пример
$total = DB::table('users')->sum('votes');
Если честно, вопрос ваш я не понял
Есть одна таблица с полями
Теперь вы делаете джойн на другую таблицу?
где у par 0 - если это новость и любое другое число это комментарий к новости.
т.е. я так понял, что всё в одной табличке и новости и комменты. И если - 0, то это новость, если любое другое число, то это комментарий к новости.
Вообще, я бы создал поле в новостях к примеру count_comment, и писал туда число комментариев к данной новости, таким образом вы избавитесь от куча джойнов в дальнейшем.
Да, вы правильно поняли. Всё в одной таблице. Вообще хорошая идея с полем, то есть я могу потом его
->decrement
->increment
при добавлении сообщения?
Страницы 1