Hola allhen:
Cita: Las tablas ya estan creadas asi, yo he creado la tabla de la manera q sugieres en otros proyectos.
Me pregunto en donde encontraste una sugerencia para modelar las tablas tal y como lo estás haciendo, ya que creo yo que el modelo E-R que mejor se adapta a este problema es justamente el que plantea Heimish2000. Me gustaría que nos dijeras dónde encontraste la referencia con esta sugerencia para investigar si tiene algún tipo de ventaja.
Tampoco nos dices de qué tipo son los datos de tus columnas, así es que voy a suponer que se trata solamente de campos tipo INT y VARCHAR.
Se me ocurre en estos momentos que hagas lo siguiente:
Código MySQL:
Ver originalQuery OK, 0 rows affected (0.06 sec)
-> (1, 'Ver TV'), (2, 'Oir Música'), (3, 'Internet'), (4, 'Caminar'),
-> (5, 'Correr'), (6, 'Ir al cine'), (7, 'Leer');
Query OK, 7 rows affected (0.03 sec)
+----------+------------+
| hobby_ID | hobby_name |
+----------+------------+
| 1 | Ver TV |
| 2 | Oir Música |
| 3 | Internet |
| 4 | Caminar |
| 5 | Correr |
| 6 | Ir al cine |
| 7 | Leer |
+----------+------------+
Query OK, 0 rows affected (0.06 sec)
-> (1, 'AAA AAA', '1'), (2, 'BBB BBB', '1,2,5'), (3, 'CCC CCC', '2,3,5'),
-> (4, 'DDD DDD', '3,5'), (5, 'EEE EEE', '4,6,5'), (6, 'FFF FFF', null); Query OK, 6 rows affected (0.02 sec)
+------+---------+----------+
| ID | name | hobby_ID |
+------+---------+----------+
| 1 | AAA AAA | 1 |
| 2 | BBB BBB | 1,2,5 |
| 3 | CCC CCC | 2,3,5 |
| 4 | DDD DDD | 3,5 |
| 5 | EEE EEE | 4,6,5 |
+------+---------+----------+
-> (
-> ) total
+------------+-------+
| hobby_name | total |
+------------+-------+
| Ver TV | 2 |
| Oir Música | 2 |
| Internet | 2 |
| Caminar | 1 |
| Correr | 4 |
| Ir al cine | 1 |
| Leer | 0 |
+------------+-------+
Para darle el formato que quieres (con el total entre paréntesis) utiliza una función CONCAT.
Igual y alguien pueda encontrar una manera más fácil de obtener el mismo resultado.
Saludos y espero tus comentarios.
Leo.