Вау - ура приятель! Я перевару это на выходных.

вая следующие таблицы:

Ученик

+----+-------+
| id | Name  |
+----+-------+
| 1  | Chris |
| 2  | Joe   |
| 3  | Jack  |
+----+-------+

регистрация

+---------------+------------+-----------+----------+
| enrollment_id | student_id | course_id | complete |
+---------------+------------+-----------+----------+
| 1             | 1          | 55        | true     |
| 2             | 1          | 66        | true     |
| 3             | 1          | 77        | true     |
| 4             | 2          | 55        | true     |
| 5             | 2          | 66        | false    |
| 6             | 3          | 55        | false    |
| 7             | 3          | 66        | true     |
+---------------+------------+-----------+----------+

Я хотел бы следующее

+----+-------+-----------+-----------+-----------+
| id | Name  | Course 55 | Course 66 | Course 77 |
+----+-------+-----------+-----------+-----------+
| 1  | Chris | true      | true      | true      |
| 2  | Joe   | true      | false     | NULL      |
| 3  | Jack  | false     | true      | NULL      |
+----+-------+-----------+-----------+-----------+

Примечание 1: Я знаю, что mysql не может иметь динамические столбцы (поправьте меня, если я ошибаюсь!), Поэтому я доволен запросом, начинающимся как:

SELECT id, name, course_55, course_66, course_77 etc...

Я доволен этим, потому что есть фиксированное количество курсов (4, если быть точным).Идеально Я хотел бы, чтобы это было динамичным; то есть не нужно вручную писать каждый курс в предложении SELECT.

Заметка 2: Это нужно для mysql чистого - я не хочу прибегать к PHP.

В настоящее время база данных насчитывает более 10000 студентов с 10000+ * 4 зачислениями (так как существует ровно 4 курса, и каждый студент учится во всех 4 модулях).

Заметка 3: Student.user_id проиндексирован, как и enrollment.enrollment_id, enrollment.student_id и enrollment.course_id.

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

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