Lo que quieres es rotar una tabla.
La herramienta que estas buscando se llama
Pivote, mas concretamente, un
Pivote dinamico.
Por desgracia para ti, muy pocos motores soportan pivotes dinamicos y mysql no es uno de ellos.
Lo que puedes hacer, es simular este comportamiento construyendo el pivote dinamicamente (suena parecido, pero no es lo mismo que un pivote dinamico).
Para el caso particular de tu ejemplo, puedes ver una demo en:
http://sqlfiddle.com/#!2/f18ffb/17 donde esta el codigo de la consulta que te devuelve el resultado esperado.
Los pivotes no son un tema para tratarse al inicio de la curva de aprendizaje, desconozco tu nivel de conocimiento de bases de datos, pero no es un tema para tomarse a la ligera y que requiere de cierta practica para comprender su funcionamiento.
Por otro lado, en el ejemplo que te pongo no se hace uso de pivotes, solo se los simula.
Como complemento, puede que encuentres interesante este articulo:
http://buysql.com/mysql/14-how-to-au...ot-tables.html
Y
este tema de stackoverflow en el cual me he basado para construir la query del ejemplo.
Saludos.
PD: Si sientes curiosidad por los pivotes y su funcionamiento, puedes ver ejemplos de funcionamiento en motores que si lo soportan, por ejemplo:
SQL Server: Pivote Pivote Dinamico Oracle: Pivote Implementacion de pivote dinamico
Otros motores que carecen de esta caracteristica, tienen formas de simularlo diferentes a mysql por ejemplo:
Firebird: https://firebird21.wordpress.com/tag/pivot-table/
Otros nombres para buscar la caracteristica solicitada son:
pivot table -
tabla multidimensional -
cross-table