Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/03/2010, 14:46
Avatar de gersveo
gersveo
 
Fecha de Ingreso: julio-2008
Mensajes: 145
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Ayuda con consulta

Cita:
Iniciado por huesos52 Ver Mensaje
Debes combinar un poco un left join y la función ifnull

Código SQL:
Ver original
  1. SELECT
  2. COUNT(ifnull(pc.id_cargo,0)) AS cantidad,
  3. p.nombre_persona,
  4. c.nombre_cargo
  5. FROM persona p
  6. LEFT JOIN
  7. cargo c
  8. ON
  9. p.id_persona=c.id_persona_lider
  10. LEFT JOIN
  11. persona_cargo pc
  12. ON
  13. pc.id_cargo=c.id_persona
  14. GROUP BY pc.id_cargo

No lo he probado, pero por ahí es la cosa.

saludos
huesos52 esta consulta me genera una fila de más con datos NULL menos el nombre del lider(cantidad=28, nombre_persona='Natalia....', cargo=NULL) cuando esta persona no tiene nada que ver con la tabla CARGO y PERSONA y cuando la cantidad deberia ser 0 aparece 1, entonces le modifiqué una cosa y la fila que era NULL ya no me aparece, pero me sigue apareciendo con valor CANTIDAD=1, cuando deberia aparecer CANTIDAD=0.
Código SQL:
Ver original
  1. SELECT
  2. COUNT(ifnull(pc.id_cargo,0)) AS cantidad,
  3. p.nombre_persona,
  4. c.nombre_cargo
  5. FROM cargo c
  6. LEFT JOIN
  7. persona p
  8. ON
  9. p.id_persona=c.id_persona_lider
  10. LEFT JOIN
  11. persona_cargo pc
  12. ON
  13. pc.id_cargo=c.id_persona
  14. GROUP BY pc.id_cargo