Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 01.12.2017 17:24:57

Запросы(DB::raw) в БД

Здравствуйте, я пишу запрос на Laravel, делаю выборку из нескольких таблиц и никак не могу получить нужный результат. В результате выполнения запроса я получаю только posts.id_post и avtors.avtor, но мне нужно получить другие поля этих таблиц, как мне можно добиться этого?
Мой запрос:

 $post = DB::table('links')
           ->join('posts', 'posts.id_post', '=', 'links.id_posts')
           ->join('avtors', 'avtors.id_post', '=', 'posts.id_post')
            ->select(array('avtors.id_post',  DB::raw('GROUP_CONCAT(avtor) as avtor')))
             ->groupBy('avtors.id_post')
             ->where('links.id_user', Auth::id())
              ->get(); 

Заранее спасибо.

Не в сети

#2 01.12.2017 18:18:37

Re: Запросы(DB::raw) в БД

Что есть и что надо получить?

в select, при использовании группировки, можно добавлять только поля, которые участвуют в группировке или поля, которые участвуют в агрегирующих функциях.
(mysql по умолчанию в «soft» моде и допускает некоторые поблажки).

Не в сети

#3 01.12.2017 19:00:04

Re: Запросы(DB::raw) в БД

Я Получаю поле id_post из таблицы posts и поле avtor из таблицы avtors. Но еще хочу получить поля name_post из posts.

Не в сети

#4 02.12.2017 00:01:30

Re: Запросы(DB::raw) в БД

 
$post = DB::table('links')
           ->join('posts', 'posts.id_post', '=', 'links.id_posts')
           ->join('avtors', 'avtors.id_post', '=', 'posts.id_post')
            ->select(array('avtors.id_post',  DB::raw('GROUP_CONCAT(avtor) as avtor'),  DB::raw('GROUP_CONCAT(posts.name_post) as name_post')))
             ->groupBy('avtors.id_post')
             ->where('links.id_user', Auth::id())
              ->get(); 

только, ты получаешь не то, что ты описал.
ты получаешь
- id поста, всех авторов через пробел, (и теперь) все названия постов, через пробел

Не в сети

#5 02.12.2017 01:40:50

Re: Запросы(DB::raw) в БД

Спасибо большое, помогло.

Не в сети

Подвал раздела