Como hacer el query

27/06/2006 - 18:43 por Imac_Man | Informe spam
saludos amigos,

mi caso es el que sigue, imaginemos tres tipicas tablas Clientes(
informacion de personas) , Facturas (Maestro) y MovimientosFacturas
(Detalle), los campos los dejo a su imaginacion, ahora mi pregunta es la
siguiente: ¿cual es la forma correcta de hacer un query cuando los campos que
necesito estan en las tres tablas?...la idea es que necesito hacer un
query eficiente super rapido y yo lo haria asi


select a.idfactura, b.FechaMovto, (select x.Nombre from clientes x where
x.idcliente = a.idcliente) from facturas a, MovimientosFacturas b
Where b.idfactura = a.idfactura

¿esta esto bien?.¿existe una forma mas eficiente?, ¿como haria si tengo
que filtrar por el nombre del cliente?¿Es mejor usar join?..


mil gracias de antemano
 

Leer las respuestas

#1 Alejandro Mesa
27/06/2006 - 19:11 | Informe spam
Imac_Man,

select
a.idfactura,
b.Nombre,
c.FechaMovto
from
dbo.factura as a
inner join
dbo.cliente
on a.idcliente = b.idcliente
inner join
dbo.movimiento as c
on a.idfactura = c.idfactura
where
b.nombre = ...


Compara los planes de ejecucion.


AMB

"Imac_Man" wrote:

saludos amigos,

mi caso es el que sigue, imaginemos tres tipicas tablas Clientes(
informacion de personas) , Facturas (Maestro) y MovimientosFacturas
(Detalle), los campos los dejo a su imaginacion, ahora mi pregunta es la
siguiente: ¿cual es la forma correcta de hacer un query cuando los campos que
necesito estan en las tres tablas?...la idea es que necesito hacer un
query eficiente super rapido y yo lo haria asi


select a.idfactura, b.FechaMovto, (select x.Nombre from clientes x where
x.idcliente = a.idcliente) from facturas a, MovimientosFacturas b
Where b.idfactura = a.idfactura

¿esta esto bien?.¿existe una forma mas eficiente?, ¿como haria si tengo
que filtrar por el nombre del cliente?¿Es mejor usar join?..


mil gracias de antemano


Preguntas similares