Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/06/2008, 11:44
euler
 
Fecha de Ingreso: junio-2008
Mensajes: 1
Antigüedad: 16 años, 9 meses
Puntos: 0
Contar tags y usuarios asociados a tags.

Mi consulta es la siguiente, cómo puedo contar cuantas usuarios comparten etiquetas. Más formalmente, tengo tres tablas, una para usuarios, otra para tags, y una tercera en la que se relacionan las dos primeras. Cada usuario puede agregar etiquetas, y lo que deseo es una forma para poder contar, por ejemplo:
16 usuarios comparten 12 etiquetas
14 usuarios comparten 6 etiquetas
etc.
Las tablas (o lo sustancioso de las tablas) son las siguientes:
mysql> describe auth_user;
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| username | varchar(30) | NO | UNI | NULL | |
+--------------+--------------+------+-----+---------+----------------+
mysql> describe love_tags_lovetag;
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(100) | NO | | NULL | |
| slug | varchar(50) | NO | MUL | NULL | |
+------------+--------------+------+-----+---------+----------------+
mysql> describe love_tags_lovetag_users;
+------------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+----------------+
| lovetag_id | int(11) | NO | MUL | NULL | |
| user_id | int(11) | NO | MUL | NULL | |
+------------+---------+------+-----+---------+----------------+
y ya intente todo lo que se me ocurrio, incluyendo este mamarracho, que solo me tira un uno como count.
SELECT *, COUNT(*) AS count FROM love_tags_lovetag_users ltlu, love_tags_lovetag ltl WHERE ltlu.lovetag_id IN (SELECT ltlu.lovetag_id FROM love_tags_lovetag_users ltlu, love_tags_lovetag ltl WHERE ltlu.lovetag_id = ltl.id) AND ltlu.lovetag_id = ltl.id AND ltlu.user_id = 2 GROUP BY ltlu.lovetag_id ORDER BY count DESC;
A alguien se le ocurre algo?
Muchas gracias.