Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/11/2011, 20:46
Avatar de punk-devil
punk-devil
 
Fecha de Ingreso: febrero-2008
Ubicación: Tuxtla Gutiérrez, Chiapas, Mexico
Mensajes: 19
Antigüedad: 16 años, 2 meses
Puntos: 3
Problema con subconsulta

Hola, que tal? Compañeros foreros...

Ahora les escribo pidiendo una manita, pues despues de buscar en el foro algo que pudiera alumbrarme el foco, y de estar intentando sin lograr nada, tengo que volver aca.

La situacion es la siguiente:

Tengo la tabla usuarios:
Código:
+----------+--------------+------+-----+---------+----------------+
| Field    | Type         | Null | Key | Default | Extra          |
+----------+--------------+------+-----+---------+----------------+
| id       | int(4)       | NO   | PRI | NULL    | auto_increment |
| username | varchar(32)  | NO   |     | NULL    |                |
| password | varchar(32)  | NO   |     | NULL    |                |
+----------+--------------+------+-----+---------+----------------+
Y la tabla alertas (donde usuario es un ID de la tabla usuarios):
Código:
+----------+-----------+------+-----+-------------------+-----------------------------+
| Field    | Type      | Null | Key | Default           | Extra                       |
+----------+-----------+------+-----+-------------------+-----------------------------+
| id       | int(4)    | NO   | MUL | NULL              | auto_increment              |
| usuario | int(4)    | NO   |     | NULL              |                             |
| hora     | timestamp | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+----------+-----------+------+-----+-------------------+-----------------------------+
El problema aca, es que desde el panel de administrador debo mostrar todos los usuarios (con o sin alertas) y a un lado la cantidad de alertas que tiene cada usuario.

Habia pensado en una consulta de este tipo:
Código:
SELECT usuarios.id, count(alertas.id) FROM usuarios, alertas GROUP BY alertas.usuario;
Y:
Código:
SELECT usuarios.id, alertas.cantidad FROM usuarios, (SELECT usuario, count(id) as cantidad FROM alertas GROUP BY usuario ) alertas WHERE usuarios.id=alertas.usuario or usuarios.id=usuarios.id;
(Y muchos intentos mas, modificando la estructura de la consulta)

Pero de ninguna forma he obtenido el resultado que deberia por ejemplo ser:
Código:
+----+----------+
| id | cantidad |
+----+----------+
|  3 |        0 |
|  4 |        2 |
|  5 |        5 |
+----+----------+