У вас есть база данных. Он должен использоваться каким-то приложением. Делайте все, что вы хотите сделать на стороне приложения.

я есть пять таблиц: ученики, классы, предметы, баллы и баллы. Я выполняю внутреннее соединение этих таблиц, чтобы получить результаты. Вот как выглядит моя схема:

Стол для студентов:

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

Таблица предметов:

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

Таблица классов:

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

Срок таблицы:

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

Таблица результатов:

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

Теперь это запрос, который я написал, чтобы вернуть результаты:

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;

Это результат, возвращаемый запросом:

Это, без сомнения, возвращает правильный результат, но у меня есть небольшая проблема в том, что он не отформатирован и не структурирован так, как мне нужно. Это немного света о том, как я хочу, чтобы это было структура:

PerioOne, PeriodTwo и PeriodThree соответствуют идентификаторам терминов в таблице оценок с их оценками соответственно. На рисунке выше показаны окончательные результаты его отображения в HTML-таблице.

Вот как я хочу, чтобы результаты возвращались в MySQL:

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

Есть ли способ, которым я могу реструктурировать свой запрос, чтобы сделать это? Для ясности вот данные в моей таблице результатов:

Ответы на вопрос(0)

Ваш ответ на вопрос