Hola amigos , tengo el siguiente problema al llamar unos registros desde una consulta mysql con php.
tengo 3 tablas , vote,usuarios,obras. y mi quiery sql es el siguiente :
Código:
"
SELECT usuarios.id, usuarios.nombre,Avg(vote.voteValue) AS promedio, count(vote.voto_id) as votos_totales FROM usuarios
LEFT JOIN vote on usuarios.id = vote.cual_usr
INNER JOIN obras on usuarios.id = obras.cual_usr
GROUP BY usuarios.id ORDER BY promedio DESC , votos_totales DESC , usuarios.nombre ASC"
el problema es que
votos_totales no arroja los valores que debiera mostrar. los usuarios que no tienen votos aparecen valores totales extrañisimos 38, 45, 35, depèndiendo del usuario, siendo que el valor deberia ser cero.
ahora esto lo resolvi sacando el inner de obras , ahi funciona perfecto, el problema es que lista todos los registros de usuarios, incluso los que no tienen obras asociadas, que es lo que no quiero que ocurra.
si alguien le ha pasado algo similar agradecería mucho que escribiera por aqui!
Saludos
Hola , editando....
mmm al parecer el problema esta en que en ves de listar la cantidad de votos , me hace un count de obras asociadas con el usuario ....
creo que eso puede ser porque los nombres de algunos campos son iguales.
LEFT JOIN vote on usuarios.id = vote.cual_usr
INNER JOIN obras on usuarios.id = obras.cual_usr
obras.cual_usr
vote.cual_usr
mmm .. editando otra vez,
cambie el nombre del campo de vote a vote.cual_usr_es, pero me sigue dando el valor de la cantidad de obras asociadas y no de votos asociados cuando hago el count.....
voy a cambiar los nombres de campos y veré que pasa