В настоящее время у меня есть 3 таблицы:
У клиента может быть тысяча счетов-фактур, и счет-фактура также может иметь тысячи платежей.
Мой текущий запрос выглядит так:
$invoices = DB::table('invoices')
->where('customer_id', $customer_id)
->get();
foreach ($invoices as $invoice) {
// attach payments result to $invoice->all_payments
$invoice->all_payments = DB::table('payments')
->where('invoice_id', $invoice->id)
->get();
}
Мой запрос работает, хотя и занимает много времени.Я ищу альтернативный способ сделать это с точки зрения производительности.
Мой предыдущий запрос с использованием соединения:
$data = DB::table('invoices')
->join('payments', 'invoices.id', '=', 'payments.invoice_id')
->where('customer_id', $customer_id)
->get();
Есть ли лучший способ сделать это?Любая помощь будет высоко ценится.