Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/09/2012, 14:27
lakai
 
Fecha de Ingreso: septiembre-2012
Mensajes: 2
Antigüedad: 12 años, 2 meses
Puntos: 0
Como realizar consultas anidadas entre 3 tablas en una base de datos

Hola amigos, tengo una consulta fijense que tengo una BD que podria describirse asi:


  • Bueno las relaciones son de la tabla
  • producto su llave es codigo y se relaciona con ventaDetalle y codproducto
  • ventaDetalle su llave es correlativ y se relacion con ventas.correlativo
  • Ventas su llave es idVentas y se relaciona con codCliente a la tabla clientes

Quiero hacer una consulta talque me genere para cada cliente que haya realizado una compra los nombres de los productos que mas compro.

La DB funciona asi, un cliente hace una compra (Necesito mostrar el nombre del cliente), se guarda el registro en ventas y el detalle de la venta en detalleVenta, en esa tabla se ponen los codigos de los productos y en la tabla productos esta el campo nombre (Necesito mostrar unicamente el producto que mas compro).

He hecho lo siguiente con esta consulta alcanzo y me muestra los productos mas comprados
Código MySQL:
Ver original
  1. SELECT codProduc, count(codProduc) AS total
  2. FROM ventaDetalle
  3. GROUP BY codProduc
  4. ORDER BY total desc;

Tambien he hecho la siguiente consulta y me muestra los clientes que han comprado
Código MySQL:
Ver original
  1. SELECT c.nombre, e.codProduc FROM tienda.cliente as c, tienda.ventaDetalle as e
  2. WHERE c.codigo IN (select d.codcliente from tienda.ventas as d where d.codcliente =c.codigo)
  3. AND e.codProduc IN (select max(e.codProduc) from tienda.ventaDetalle as e, tienda.ventas as d
  4. where e.correlativo = d.correlativo GROUP BY e.codProduc)
  5. Group by c.nombre;

Y entonces no se como hacer la consulta que solo me muestre los clientes que han comprado y los productos que mas compraron, un saludo y de antemano muchas gracias.