Como reorganizar os resultados retornados pela consulta de junção interna

Eu tenho cinco tabelas de alunos, classes, assuntos, pontuações e pontuações. Estou executando uma junção interna nessas tabelas para retornar resultados. É assim que meu esquema se parece:

Tabela de alunos:

students
--------
id *
name
class_id (fk)

Tabela de assuntos:

subjects
--------
id *
name

Tabela de classe:

classes
--------
id *
name

Tabela de termos:

terms
--------
id *
name

Tabela de pontuações:

scores
---------------
id *
student_id (fk)
subject_id (fk)
class_id (fk)
term_id (fk)
score

Agora, esta é a consulta que escrevi para retornar resultados:

SELECT students.name as Name, subjects.name as Subject, classes.name as Class, terms.name as Term, scores as Score

// id 1 for student Nathan
// term 1 for first Period
// term 2 for second period
// term 3 for third period

from scores
    inner join students
        on students.id = scores.student_id
        and scores.student_id = 1
    inner join subjects
        on subjects.id = scores.subject_id
        and scores.student_id = 1
    inner join classes
        on classes.id = scores.class_id
        and scores.student_id = 1
    inner join terms 
        on terms.id = scores.term_id
        and scores.student_id = 1

where scores.term_id = 1 or scores.term_id = 2 or scores.term_id = 3
ORDER BY scores.term_id;

Este é o resultado retornado pela consulta:

Isso sem dúvida está retornando o resultado correto, mas o pequeno problema que tenho é que ele não está formatado ou estruturado da maneira que eu preciso. Isto é um pouco de luz sobre como eu quero que seja a estrutura:

PerioOne, PeriodTwo e PeriodThree corresponde aos IDs de termo na tabela de pontuações com suas pontuações, respectivamente. A figura acima mostra os resultados finais de como será exibido em uma tabela html.

É assim que eu quero que os resultados sejam retornados no mysql:

Name | subject | class | first Period | Second Period | Third Period
--------------------------------------------------------------------
Nathan | 1      | 1     |  96          | 71            | 74 
Nathan | 2      | 1     |  96          | 71            | 74 

Existe uma maneira de reestruturar minha consulta para fazer isso? Para maior clareza, aqui estão os dados na minha tabela de pontuações:

questionAnswers(0)

yourAnswerToTheQuestion