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

Consulta en tres tablas no me Sale

Estas en el tema de Consulta en tres tablas no me Sale en el foro de Mysql en Foros del Web. Buenas tardes, tengo las siguientes tablas y necesito saber cuantas visitas ha tenido cada cliente y cuantas quejas ha realizado. he desarrollado lo siguiente y ...
  #1 (permalink)  
Antiguo 22/11/2011, 11:27
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 9 meses
Puntos: 2
Consulta en tres tablas no me Sale

Buenas tardes, tengo las siguientes tablas



y necesito saber cuantas visitas ha tenido cada cliente y cuantas quejas ha realizado.

he desarrollado lo siguiente y no me funciona del todo bien

select idcliente, count(Vidcliente) visitas, count(Qidcliente) quejas
from cliente
left join visita on idcliente = vidcliente
left join queja on idcliente = Qidcliente
group by idcliente

cual sera el problema, ya que el resultado no es el esperado, me hace falta hacer alguna relación, gracias.
  #2 (permalink)  
Antiguo 22/11/2011, 12:51
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años, 7 meses
Puntos: 27
Respuesta: Consulta en tres tablas no me Sale

Y porque LEFT JOIN?...Acaso de deberia estar el ID del cliente en todas las tablas?...


Código SQL:
Ver original
  1. SELECT a.idcliente, COUNT(b.Vidcliente) AS visitas, COUNT(c.Qidcliente)  AS quejas
  2. FROM cliente a
  3. INNER JOIN visita b  ON a.idcliente = b.vidcliente
  4. INNER JOIN queja c ON c.qidcliente = a.idcliente
  5. GROUP BY b.idcliente, c.qidcliente

Pruebalo y me cuentas...
  #3 (permalink)  
Antiguo 22/11/2011, 13:29
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Consulta en tres tablas no me Sale

Gracias por la respuesta, pero uso el LEFT ya que necesito que muestre el cliente asi no halla tenido ninguna visita o no halla colocado ninguna queja.

De igual forma he realizado la consulta asi como lo expusiste pero no me funciona, me saca datos duplicados de las tablas, alguna sugerencia.

PD. el resultado de la consulta es

visitas
8

quejas
8
  #4 (permalink)  
Antiguo 22/11/2011, 20:00
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta en tres tablas no me Sale

Tu problema básico es que "visitas" y "quejas" son tablas sin relación entre ellas, por lo que no puedes realizar un JOIN de ningún tipo que abarque las tres al mismo tiempo.
Diferente sería si "quejas" estuviese relacionada con "visitas",de tal modo que pudiese saberse en qué visita el usuario presentó una queja.
Sintetizando: Esa consulta no es posible en el contexto de relaciones planteado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: join, select, tabla, tablas, tres
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 10:09.