Как сделать объединенный запрос, используя Laravel Eloquent и Laravel Query Builder? - PullRequest
0 голосов
/ 24 октября 2019

Я использую Laravel, красноречивый для данных CRUD. Моя проблема в том, что я не знаю, как делать запросы UNION, используя laravel Eloquent ORM. Можете ли вы помочь мне решить мою проблему?

Это мой пример запроса, который я хочу реализовать в laravel Eloquent или Query Builder

SELECT in_records.item_id, 
       in_records.date, 
       in_records.value AS 'IN', 
       ''               AS 'OUT', 
       in_records.USER 
FROM   in_records 
UNION 
SELECT out_records.item_id, 
       out_records.date, 
       ''                AS 'IN', 
       out_records.value AS 'OUT', 
       out_records.USER 
FROM   out_records 
ORDER  BY date

1 Ответ

0 голосов
/ 24 октября 2019
$first= DB::table("in_records")
    ->select(" in_records.item_id,
        in_records.date,
        in_records.value AS 'IN',
        '' AS 'OUT',
        in_records.user");

$final= DB::table("out_records")
    ->select(" out_records.item_id,
         out_records.date,
         '' AS 'IN', 
         out_records.value AS 'OUT',
         out_records.user")
    ->union($first)
    ->get();

или, может быть, вы можете объединить результаты следующим образом:

$a = Table::where('column','value')->get();
$b = Album::where('column','value')->get();
$result = $a->merge($b);
...