Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-03-2005
tigrillo34 tigrillo34 is offline
Miembro
 
Registrado: sep 2003
Posts: 19
Poder: 0
tigrillo34 Va por buen camino
Question 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
Responder Con Cita
  #2  
Antiguo 12-03-2005
CCCP CCCP is offline
Miembro
 
Registrado: dic 2004
Ubicación: Barcelona
Posts: 38
Poder: 0
CCCP Va por buen camino
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 20:36:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi