Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/05/2007, 17:31
michelson
 
Fecha de Ingreso: febrero-2006
Mensajes: 208
Antigüedad: 18 años, 2 meses
Puntos: 0
problema con inner y left join en la misma consulta, no me muestra bien un count

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
__________________
michelson
-----------------
crossing snow mountains with a yamaha bike

Última edición por michelson; 13/05/2007 a las 18:47