Tengo 2 tablas, quiero juntar todos los coletes que tengan el mismo id_factura que el id de facturas O si el id_factura = storno_id de facturas
InvoicesID Coletes.INVOICE_ID 1 1 1 1Pero también
Invoices.STORNO_ID Coletes.INVOICE_ID 1 1 1 1Mi consulta se ve así:
$data = DB::table('invoices') ->leftJoin('coletes','coletes.invoice_id','=','invoices.id') ->where('coletes.invoice_id','=',$id) ->orWhere('coletes.invoice_id','=','invoices.storno_id') ->get();Pero solo devuelve los coletes con id_factura = $id, y no también los que tienen el mismo id_factura que facturas,storno_id
En las consultas SQL tradicionales, puede seleccionar entre varias tablas, como from invoices, coletes . Esto se puede hacer usando DB::raw() con el generador de consultas. Luego agregando la lógica de unión, como lógica where en su lugar.
DB::table(DB::raw('invoices, coletes')) ->where('coletes.invoice_id', 'invoices.id') ->where(function($query) use ($id) { $query->where('coletes.invoice_id', $id) ->orWhere('coletes.invoice_id', 'invoices.storno_id') })->get();