![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
![]() 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 |
#2
|
|||
|
|||
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.
|
![]() |
|
|
![]() |
|