Это то, что я сделал до сих пор.
DB::table('products')
->leftjoin('inventories', 'inventories.product_id', 'products.id')
})
->leftjoin('order_items as purchase_oi', function($query){
$query->on('purchase_oi.inventory_id', 'inventories.id');
$query->on('purchase_oi.status','!=', \DB::raw('"cancelled"'));
})
->select(DB::raw('sum(inventories.quantity)as qty'),
DB::raw('count(purchase_oi.inventory_id) as purchases'),
'products.id as pid', 'products.*')
->where('products.is_deleted', 0)
->where('inventories.is_deleted',0)
->groupBy('inventories.product_id')
->get();
Таблица order_items содержит статус в
enum('shipped','return''cancelled');
Эта проблема здесь при объединении с таблицей order_items.В настоящее время я просто получаю данные, которые не равны отмененным, но я хочу получить возвращаемые данные order_items и отмененные данные order_items. т.е. получите мне покупки, отмены и счетчик возврата из таблицы order_items. Ожидаемый результат:
0=>purchases = 4,
returns = 10,
cancelled = 2