Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema con consulta y multiples JOIN

Estas en el tema de Problema con consulta y multiples JOIN en el foro de Mysql en Foros del Web. Buenas, tengo un pequeño problema con una consulta sql, tengo tres tablas: campaigns, products y offers. Campaigns table: Products table: Offers table: Products table data: ...
  #1 (permalink)  
Antiguo 21/04/2011, 12:01
Avatar de Pedro_valencia  
Fecha de Ingreso: diciembre-2007
Ubicación: Valencia
Mensajes: 82
Antigüedad: 16 años, 4 meses
Puntos: 6
Problema con consulta y multiples JOIN

Buenas, tengo un pequeño problema con una consulta sql, tengo tres tablas: campaigns, products y offers.

Campaigns table:



Products table:



Offers table:



Products table data:



Necesito consultar el total de vistas de la campaña (suma de el campo views de la tabla 'products' pertenecientes a esa campaña) y también contar el número de ofertas (count de la tabla 'offers' a las ofertas pertenecientes a los productos de esa campaña), he tratado de hacerlo de esta manera:

Código MySQL:
Ver original
  1. SELECT sum(p.views), c.id_campaigns, c.permalink, c.name, c.popular, UNIX_TIMESTAMP(c.end_date), count(o.id_offers)
  2.     FROM products p
  3.     LEFT JOIN campaigns c ON p.id_campaigns = c.id_campaigns
  4.     RIGHT JOIN offers o ON p.id_products = o.id_products

Pero la suma de las vistas del producto falla y en lugar de devolverme la suma total de el campo views de todos los productos me devuelve la suma de la última fila + la última fila de nuevo.

SQL Query Explain:




Como véis la suma de las vistas del producto (p.views) es la suma de la última fila de la tabla products más ella misma, es decir 114+114=228.

Uso RIGHT JOIN para que me devuelva bien el recuento de ofertas independientemente del número de filas en la tabla 'products', ya que puede haber más de una oferta por producto.

¿Cómo puedo hacer la consulta para que me devuelva los datos de manera correcta?

Si no me entendéis puedo tratar de explicarme mejor.

Saludos.
__________________
Si te ha servido mi post, ¡dame Karma, es gratis!

- ¿Qué es el éxito? Lo diferente.

Etiquetas: join, multiples
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:59.