SoloCodigo

Bases de Datos => SQL Server => Mensaje iniciado por: Fraggle en Jueves 8 de Septiembre de 2011, 20:17

Título: Consulta SQL
Publicado por: Fraggle en Jueves 8 de Septiembre de 2011, 20:17
Me estoy estancando en un consulta, a ver si me puede ayudar alguien.

Tengo una tabla: Compra (cliente, producto). Por poner unas cuantas filas de ejemplo:
Juan - Manzanas
Luis - Peras
Antonio - Peras
Juan - Uvas
Luis - Manzanas
Pedro - Manzanas
Pedro - Naranjas
Juan - Peras

Quisiera hacer una consulta en la cuál me muestre qué clientes han comprado Manzanas y Peras. Pero que me muestre sólo los que han comprado las dos.

Gracias por la ayuda!
Título: Re:Consulta SQL
Publicado por: ProfesorX en Viernes 9 de Septiembre de 2011, 01:04
Tienes que hacer una consulta "self-join", es decir, unir la tabla (join) consigo misma como si fueran dos tablas diferentes, por medio de aliases (as). Te dejo un ejemplo de como seria tomando como ejemplo la tabla que mencionas:

Código: [Seleccionar]
select c1.cliente from compra as c1 inner join compra as c2
on c1.cliente = c2.cliente
where c1.producto = 'manzanas' and c2.producto = 'peras';

Saludos :)
Título: Re:Consulta SQL
Publicado por: Fraggle en Viernes 9 de Septiembre de 2011, 02:41
Buenísimo! No me había dado cuenta del self-join. Muchas gracias por la ayuda!