@leonardooleg

Laravel DB запрос с Join?

Есть таблица товара, есть таблица с цветами (красный, синий)
Нужно сделать 1 запрос и получить в товаре все цвета.
В таблице товара это поле "color_id" со значением "1,5,6"
как соединить две таблицы
$products = DB::table('products')
            ->leftJoin('categoryables', 'categoryables.categoryable_id', '=', 'products.id')
            ->leftJoin('categories', 'categoryables.category_id', '=', 'categories.id')
            ->leftJoin('brands', 'products.brand_id', '=', 'brands.id')

            ->leftJoin('colors', 'products.color_id',  '=',  'colors.id)  ///products.color_id = "1,5,6" -строка

            ->leftJoin('sizes', 'products.size_id', '=', 'sizes.id')
            ->whereIn('categoryables.category_id', $categories)
            ->orderBy('created_at', 'desc')
            ->select('products.*', 'categories.path', 'categories.title', 'brands.name_brand', 'colors.name_color', 'colors.img_color', 'sizes.brand_name_size')
            ->paginate(5);


Задавайте наводящие вопросы
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 1
@leonardooleg Автор вопроса
сделал так
$products = DB::table('products')
            ->leftJoin('categoryables', 'categoryables.categoryable_id', '=', 'products.id')
            ->leftJoin('categories', 'categoryables.category_id', '=', 'categories.id')
            ->leftJoin('brands', 'products.brand_id', '=', 'brands.id')

            ->leftjoin('colors',DB::raw('FIND_IN_SET(colors.id,products.color_id)'),">",DB::raw("'0'"))

            ->leftjoin('sizes',DB::raw('FIND_IN_SET(sizes.id,products.size_id)'),">",DB::raw("'0'"))
            ->whereIn('categoryables.category_id', $categories)
            ->orderBy('created_at', 'desc')
            ->select('products.*', 'categories.path', 'categories.title', 'brands.name_brand', 'colors.name_color', 'colors.img_color', 'sizes.brand_name_size')
            ->paginate(5);

но в базе только последнее поле. а не масив из значениями
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
Wanted. Москва
До 200 000 ₽
div. Ставрополь
от 50 000 до 120 000 ₽
Lachestry Таганрог
от 170 000 до 200 000 ₽
30 нояб. 2024, в 19:40
1500 руб./в час
30 нояб. 2024, в 19:32
8000 руб./за проект
30 нояб. 2024, в 19:28
5000 руб./за проект