Преобразование MySQL-запроса в Laravel - PullRequest
0 голосов
/ 16 октября 2018

Как я могу преобразовать этот запрос MySQL в запрос Laravel?

select *
from marques
where id in (select marque_id from products
             where category_id = 'valeur1' or category_id in (select id from categories
                                                              where parent_id = 'Valeur1'))

1 Ответ

0 голосов
/ 16 октября 2018

Я думаю, что ваш текущий запрос эквивалентен следующему:

SELECT *
FROM marques m
LEFT JOIN products p
    ON m.id = p.marque_id
LEFT JOIN categories c
    ON p.category_id = c.id AND c.parent_id = 'Valeur1'
WHERE
    p.category_id = 'valeur1' OR
    c.id IS NOT NULL

Вот приблизительное предположение о том, как может выглядеть ваш код Laravel:

$res = DB::table('marques')
        ->join('products', 'marques.id', '=', 'products.marque_id')
        ->join("categories", function($join) {
            $join->on('products.category_id', '=', 'categories.id')
                 ->on('categories.parent_id', '=', 'Valeur1')
        })
        ->whereNotNull('categories.id')
        ->orWhere('products.category_id', '=', 'valeur1')
        ->select('*')
        ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...