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

Inner Join de 3 tablas + count

Estas en el tema de Inner Join de 3 tablas + count en el foro de Mysql en Foros del Web. Hola, acabo de registrarme porque tengo un problema con una consulta sql y confío en que me puedan ayudar :) El asunto es asi, un ...
  #1 (permalink)  
Antiguo 11/08/2011, 08:21
 
Fecha de Ingreso: agosto-2011
Mensajes: 1
Antigüedad: 12 años, 8 meses
Puntos: 0
Inner Join de 3 tablas + count

Hola, acabo de registrarme porque tengo un problema con una consulta sql y confío en que me puedan ayudar :)

El asunto es asi, un sistema de votación de comentarios, por lo que tengo 3 tablas: usuario, comentario y votocomentario.

usuario tiene su id y una foto
comentario tiene su id, el comentario en si, y el idmensaje donde se hizo el comentario
votocomentario tiene el id del usuario que votó, y el idcomentario que se votó

Lo que tengo que hacer es un ranking de los 4 comentarios más votados, mostrando la foto del usuario que hizo el comentario, el comentario y el id del mensaje al que pertenece el comentario.

Yo lo que logré hacer es el ranking de los 4 comentarios más votados, lo que anda mal es obtener la foto del usuario que hizo el comentario (siempre me muestra el mismo usuario).

La consulta que hice es esta:

Código MySQL:
Ver original
  1. SELECT c.comentario, u.foto, c.mensajeid, COUNT( * ) AS total
  2. FROM ((votocom AS v INNER JOIN comentario as c ON v.comentarioid = c.idcomentario) INNER JOIN usuario AS u ON v.usuarioid = u.id)
  3. GROUP BY v.comentarioid, c.comentario

Eso me devuelve los 4 comentarios más votados correctamente, pero devuelve mal la foto del usuario que hizo dicho comentario (devuelve la foto de un solo usuario).

Bueno, espero puedan ayudarme, muchas gracias!!

Etiquetas: count, join, select, sql, tabla, tablas
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 13:50.