![]() |
Subconsultas o Left Join
Hola a todos, hace unos días pedí ayuda con una consulta y me pasaron una que hacía uso de subconsultas, después pude realizar la mía propia pero utilizando left join y me entró la duda: Qué es mejor subconsultas o left joins?
Les cuento un poco sobre la consulta que deseaba hacer. Tenía dos tablas facturas(id_cliente,factura,monto) cobros(id_cliente,factura,cobro) Deseaba extraer las facturas que aún estaban pendientes de saldar, la consulta que me recomendaron fue esta: select factura from facturas f where saldo-(select sum(cobro) from cobros c where f.id_cliente=c.id_cliente and f.factura=c.factura)>0 La que yo logré hacer fue: select factura from facturas f left join cobros c on c.id_cliente=f.id_cliente and c.factura=f.factura group by factura having saldo-sum(c.cobro)>0 Ahora, este es un ejemplo, pero en general qué es más eficiendo manejar.Espero sus comentarios, nos vemos |
hacer joins es siempre mas rápido. Piensa que una subconsula la puedes sustituir por where valor in (a1,a2,a3,a4,...), y creo que recordar que tienen un número máximo de elementos.
|
La franja horaria es GMT +2. Ahora son las 00:07:51. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi