Конструктор запросов должен быть совместим с несколькими механизмами баз данных (mysql, postgresql, sql lite, sql server) и, следовательно, предлагает поддержку только общих функций.
Если ваш запрос возвращает данные, вы можетеиспользовать метод DB:select()
для выполнения необработанного запроса .
$data = DB::select('WITH main AS (SELECT id FROM table1), SELECT * FROM table2 WHERE table2.id IN (SELECT * FROM main)');
Метод DB: select также принимает второй параметр для использования именованных привязок.
В качестве альтернативы доступны такие пакеты, как laravel-cte , которые добавят функциональность в Eloquent / Query Builder.