Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Добрый день.
Подскажите пожалуйста как можно посчитать количество записей в соседней таблице по связующему столбцу
Предположим есть 2 таблицы
Пользователь
id
name
fio
address
Статьи
id
user_id
title
text
Как видно статьи с пользователем связаны полем user_id
Как я могу одним запросом через DB:: вывести список всех пользователей с количеством…
Не в сети
вывести список всех пользователей с количеством…
Как я могу одним запросом через DB:: вывести список всех пользователей с количеством написаных ими статей?
Пример: Вася(5), Леша(7), Володя(0)
Заранее благодарю за ответ!
Изменено sShpion (09.02.2022 21:21:55)
Не в сети
Здравствуйте.
Изучите сперва sql и если не можете написать запрос на laravel, то напишите sql"ьный запрос. За вас работу никто не хочет выполнять, могут только помочь.
select count(article.id) from article
left join users on users.id = article.user_id
where user.id = 666
Так мы получим ТОЛЬКО количество статей конкретного пользователя (666)
В ларавель, не помню как прописывается join, поэтому посылаю тебя сюда https://laravel.ru/docs/v5/queries#%D0% … 0%B8%D1%8F
Проще создать две модели User, Article. У юзера прописать связь
public function articles() {
return $this->hasMany('App\User', 'user_id');
}
Пояснение
https://laravel.ru/docs/v5/eloquent-relationships#om
Получить пользователя со статьями по связи -
$users = User::with('articles')->where('столбец','значение')->get();
// И при выводе количество получаешь так -
foreach($users as $key => $user){
$user->articles->count();
}
Не в сети