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

duda mysql devuelva dato null con group by

Estas en el tema de duda mysql devuelva dato null con group by en el foro de Bases de Datos General en Foros del Web. Hola: mi consulta es como puedo devolver un dato que viene null. sql resumido Código PHP: SELECT g . idgenero ,  COUNT ( g . ...
  #1 (permalink)  
Antiguo 16/11/2010, 07:06
 
Fecha de Ingreso: abril-2006
Mensajes: 240
Antigüedad: 18 años
Puntos: 1
duda mysql devuelva dato null con group by

Hola: mi consulta es como puedo devolver un dato que viene null.
sql resumido
Código PHP:
SELECT
g
.idgeneroCOUNT(g.descripcion) AS contarGenero
 FROM
t_genero g 
LEFT JOIN t_persona p ON g
.idgenero p.idgenero 
GROUP BY idgenero ORDER BY idgenero IN
(2,1,3)
... 
2=mujeres,1=hombre,3=no corresponde

necesito que me devuelva los 3(m,h,nc) registros pero solo me devuelve 2, en este caso no existe ninguno del genero mujer pero si de hombres y nc y por ende me devulve

H=5
nc = 1
  #2 (permalink)  
Antiguo 16/11/2010, 07:18
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: duda mysql devuelva dato null con group by

Código MySQL:
Ver original
  1.      g.idgenero,
  2.      COUNT(g.descripcion) contarGenero
  3.      t_persona p LEFT JOIN t_genero g ON g.idgenero = p.idgenero
  4. GROUP BY idgenero
  5. ORDER BY idgenero IN(2,1,3)
Tienes que usar de tabla base los géneros y no las personas. Esto es porque la idea de LEFT JOIN es que te devuelva lo que hay en la primera tabla (es la de la izquierda) que conincida o no con la segunda (derecha).
Como la tabla personas tiene baja cardinalidad en géneros (sólo figuran 2), no te devovlerá jamás de la derecha un registro que coincida con los que no existen en ella.

¿Se entiende la idea?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 16/11/2010, 07:49
 
Fecha de Ingreso: abril-2006
Mensajes: 240
Antigüedad: 18 años
Puntos: 1
Respuesta: duda mysql devuelva dato null con group by

gracias amigos pero me sigue devolviendo solo los coincidentes, le saco el group by y me devulve los 3, modifique como me dijiste pero no me funka.
  #4 (permalink)  
Antiguo 16/11/2010, 08:06
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: duda mysql devuelva dato null con group by

Código MySQL:
Ver original
  1.      g.idgenero,
  2.      COUNT(g.descripcion) contarGenero
  3.      t_persona p LEFT JOIN t_genero g ON p.idgenero = g.idgenero
  4. WHERE 1 OR g.idgenero  IS NULL
  5. GROUP BY idgenero
  6. ORDER BY idgenero IN(2,1,3)
__________________
¿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: dato, group, mysql, null
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 08:13.