Select rebelde.

04/02/2004 - 16:29 por Jose Antonio | Informe spam
Hola, tengo tres tablas, en la primera estan los clientes, en la segunda los
pedidos de estos clientes y en la tercera las lineas de estos pedidos.

Necesito saber con un select, los clientes cuyos pedidos incluyan lineas con
unos productos determinados.

Ejemplo:

Clientes Pedidos Lineas de Pedidos
1 1 P1
P2
P3
P4

2 2 P1
P3

3 3 P1
P2

En este caso. ¿Que clientes tienen en sus pedidos los productos P1 y P3.

El resultado seria El cliente 1 y el Cliente 2.


Saludos y Gracias.
 

Leer las respuestas

#1 Mariano Alvarez \(MUG\)
04/02/2004 - 16:33 | Informe spam
Podria ser algo asi

select distinct
clientes.nombre
from
clientes
inner join pedidos ON ( "aca va el join entre clientes y pedidos" )
inner join lineas ON ("aca va el join entre lineas y pedidos")
where
lineas.producto in( producto1, ...ProductoN)


Tambien puedes usar EXISTS


select clientes.nombre
from
clientes
where exists
(
select pedidos.cliente
from pedidos
inner join lineas ON ("aca va el join entre lineas y pedidos")
where
lineas.producto in( producto1, ...ProductoN)
AND ( "aca va el join entre clientes y pedidos" )
)




Jose Mariano Alvarez
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar


"Jose Antonio" wrote in message
news:
Hola, tengo tres tablas, en la primera estan los clientes, en la segunda


los
pedidos de estos clientes y en la tercera las lineas de estos pedidos.

Necesito saber con un select, los clientes cuyos pedidos incluyan lineas


con
unos productos determinados.

Ejemplo:

Clientes Pedidos Lineas de Pedidos
1 1 P1
P2
P3
P4

2 2 P1
P3

3 3 P1
P2

En este caso. ¿Que clientes tienen en sus pedidos los productos P1 y P3.

El resultado seria El cliente 1 y el Cliente 2.


Saludos y Gracias.


Preguntas similares