Campaigns table:
![](http://i.imgur.com/Q6EZm.png)
Products table:
![](http://i.imgur.com/Ae5N0.jpg)
Offers table:
![](http://i.imgur.com/Zc1oU.jpg)
Products table data:
![](http://i.imgur.com/Zng2y.jpg)
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
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:
![](http://i.imgur.com/JIicw.jpg)
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.