Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/05/2014, 15:30
Silver
 
Fecha de Ingreso: noviembre-2001
Ubicación: México DF
Mensajes: 128
Antigüedad: 22 años, 5 meses
Puntos: 0
query para activos y pendientes

Hola,
Quizás esta sea una pregunta sencilla, pero por más pruebas que hago no doy con el resultado y ya casi se me va el tiempo de entrega del proyecto.
- Tengo una tabla "users", donde está toda la información del usuario
- Una tabla "groups" donde están los posibles grupos a los que puede pertenecer un usuario.
- Una tabla "users_groups" que enlaza "users" y "groups" donde registro los usuarios que ya están participando de un grupo determinado.
- Una tabla "pending" donde tengo los usuarios que han sido referidos, de ellos solo tengo nombre y email.
¿Qué quiero?
Quiero para cada grupo, su nombre, el número de miembros y el número de pendientes.

Los grupos y sus miembros los obtengo sin problemas con:

Código SQL:
Ver original
  1. SELECT g.`id_group`, g.`groupname`, COUNT(g.`groupname`) AS `members`
  2. FROM `groups` g
  3. LEFT JOIN `users_groups` ug ON (ug.`group_id` = g.`id_group`)
  4. GROUP BY g.`groupname`
  5.  
  6. resultado:
  7. id_group  groupname  members
  8.     19        aguilas         1
  9.     20          osos           2
  10.     18          gatos         1

Pero cuando quiero saber los pendientes ya me da un número equivocado:

Código SQL:
Ver original
  1. SELECT g.`id_group`, g.`groupname`, COUNT(g.`groupname`) AS `members`, COUNT(p.`name`) AS `pending`
  2. FROM `groups` g
  3. LEFT JOIN `users_groups` ug ON (ug.`group_id` = g.`id_group`)
  4. LEFT JOIN `pending` p ON (p.`group_id` = g.`id_group`)
  5. GROUP BY g.`groupname`, p.`name`
  6.  
  7. resultado:
  8. id_group  groupname  members  pending
  9.     19        aguilas           1             0
  10.     20          osos             2             0
  11.     18          gatos           1              1
  12.     18          gatos           1              1
  13.  
  14. esperado:
  15. id_group  groupname  members  pending
  16.     19        aguilas           1             0
  17.     20          osos             2             0
  18.     18          gatos           1              2

¿Qué estoy haciendo mal?
Saludos y gracias!!!
__________________
Nuedi Servicios SA de CV
http://www.nuedi.mx

Última edición por gnzsoloyo; 11/05/2014 a las 15:52