Foros del Web » Programando para Internet » PHP »

problema con inner y left join en la misma consulta, no me muestra bien un count

Estas en el tema de problema con inner y left join en la misma consulta, no me muestra bien un count en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 13/05/2007, 17:31
 
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
  #2 (permalink)  
Antiguo 13/05/2007, 20:59
 
Fecha de Ingreso: febrero-2006
Mensajes: 208
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: problema con inner y left join en la misma consulta, no me muestra bien un count

Hola

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_usuario
INNER JOIN obras on  usuarios.id =  obras.cual_usr

GROUP BY usuarios.id ORDER BY promedio DESC , votos_totales DESC , usuarios.nombre  ASC"
mmm al parecer
count(vote.voto_id) AS votos_totales me sigue arrojando el total de count(obras.id)

por que puede ser???
__________________
michelson
-----------------
crossing snow mountains with a yamaha bike
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 14:49.