Cómo mostrar múltiples datos de varias filas en una sola fila en mysql

Tengo una tabla que tiene varias filas de datos que pertenecen a usuarios individuales. P.ej:

            regno         course      score         session     semester
          03/01/02        Mth111       60            2            3
          03/01/02        MTH222       50            2            3
          03/04/05        MTH333       40            2            3
          03/04/05        MTH111       30            2            3

Quiero que los valores para una sesión y un semestre en particular se muestren en una fila por registro de esta manera:

      regno                    
    03/01/02            MTH111         MTH222
                          60             50

   03/04/05             MTH333          MTH111
                          40             30

Intenté usar group by... usando un ciclo foreach con mysql_fetch_assoc para obtener los encabezados de columna y una cláusula group by... pero solo se mostró una fila. ¿Cómo puedo resolver esto? Gracias.

preguntado el 28 de julio de 12 a las 15:07

Podría juntar algo en una consulta, pero sería dolorosamente frágil. Estaría buscando obtener los datos y construir una matriz, para luego producir una tabla html. Tan pronto como una fila difiera de otra, sql será muy doloroso. Puedo darte algunas pistas si quieres, pero ni siquiera probaría esto. -

2 Respuestas

Podrías usar lo siguiente

select regno, concat(course,'\n',score) as someName from table1

or

select regno, concat(course,'<br>',score) as someName from table1

si está mostrando en HTML.

Editar: Righto, ahora veo lo que quieres decir.

select regno, group_concat(concat(course, '|', score)) as courses from table1 group by regno

Los resultados de los violín SQL

03/01/02    Mth111|60,MTH222|50
03/04/05    MTH333|40,Mth111|30

Respondido 28 Jul 12, 15:07

Esto dará el mismo resultado que lo que mostré anteriormente. Quiero que el regno aparezca solo una vez. - ewom2468

Aquí hay un trabajo violín sql que muestra los resultados - Fluffeh

Otra solución es extraer estos registros en un programa y formatearlos de la manera que lo necesite.

De esta manera será más fácil de entender y depurar más adelante.

Respondido 28 Jul 12, 15:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.