【发布时间】:2020-10-05 04:30:12
【问题描述】:
在我的应用程序中,我必须运行相同的查询 3 次,但每个查询都有一些不同的条件。例如:active:查询+active conditions、inactive:查询+inactive conditions。等等
这是我的代码:
$activeInventory = $inactiveInventory = \DB::table('device_inventories')
->where([
'device_companies.company_id' => session()->get('COMPANY_ID'),
'device_inventories.device_id' => $Self->id,
])->select([
...
])
->join('devices', 'devices.id', '=', 'device_inventories.device_id')
->join('device_companies', 'device_companies.id', '=', 'devices.device_company_id');
// active records
$active = $activeInventory
->where('device_inventories.status', 'T')
->join('u_devices', 'u_devices.device_inventory_id', '!=', 'device_inventories.id')
->get() ?? null;
// inactive records
$inactive = $inactiveInventory
->where('device_inventories.status', 'F')
->get() ?? null;
// returning data
return [
'model' => $Self,
'active' => $active,
'inactive' => $inactive,
];
请注意,我已在 Active 查询中加入了 u_devices 表。但是当我运行Inactive 查询时,与u_devices 连接的查询也出现在该查询中。即使我使用不同的变量来存储基本查询并运行它。
我在这里做错了什么..?
【问题讨论】:
标签: php sql laravel query-builder base