Hola yeyowave:
Si bien es cierto lo que tienes puede no ser un error de diseño, me cuesta encontrar una razón de peso para hacer lo que estás pidiendo... es decir ¿Qué sentido le encuentras a mostrar la información de esta manera?
estéticamente se ve muy mal, considero que es un desperdicio de espacio y algo completamente innecesario, pero igual y tu tienes alguna razón que nos pueda convencer de lo contrario... Pero bueno, como hay ocasiones en que a final de cuentas un programador puede estar supeditado a lo que el cliente pide... ("Jerarquía mata razón"
escuché alguna vez en una reunión con altos directivos), veamos una opción para hacer lo que quieres (aunque insisto que no le veo caso)
Código MySQL:
Ver original+------+-------------+
| id | descripcion |
+------+-------------+
| 1 | uno |
| 2 | dos |
| 3 | tres |
+------+-------------+
+------+-------------+
| id | descripcion |
+------+-------------+
| 1 | uno |
| 2 | dos |
| 3 | tres |
+------+-------------+
+------+-------------+
| id | descripcion |
+------+-------------+
| 1 | uno |
| 1 | uno |
| 1 | uno |
| 2 | dos |
| 3 | tres |
| 3 | tres |
+------+-------------+
Observa que la cláusula IN en realidad no te sirve para nada, pues esta descarta los valores repetidos, la opción sería no utilizar esta u hacer una iteración o un UNION ALL para cada uno de los elementos... esto obviamente no tiene nada de eficiente, pero de entrada es lo único que se me ocurre para hacer lo que quieres.
Saludos
Leo.