Используйте LEFT JOIN от Students к Grades по student_id. Он сохранит учащихся без оценок и заполнит связанные поля значениями NULL.
Отображение всех студентов с их оценками
Используйте LEFT JOIN от Students к Grades по student_id. Он сохранит учащихся без оценок и заполнит связанные поля значениями NULL.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Составьте SQL‑запрос, который выведет список всех учащихся вместе с их оценками (имя студента, предмет, оценка). Если у студента отсутствуют оценки, он всё равно должен присутствовать в результате, а поля предмета и оценки будут иметь значение NULL.
В базе имеются две таблицы:
Students(id, name)
Grades(student_id, subject, grade)
Ответ
Используйте LEFT JOIN от Students к Grades по student_id. Он сохранит учащихся без оценок и заполнит связанные поля значениями NULL.
SELECT s.name, g.subject, g.grade
FROM Students s
LEFT JOIN Grades g ON g.student_id = s.id;
Студент с несколькими оценками получит несколько строк — по одной на запись Grades. Если нужно различать одноимённых студентов, добавьте s.id в результат. Условие на предмет, которое должно сохранять студентов без подходящих оценок, размещайте в ON, а не в WHERE. Порядок строк задаётся отдельным ORDER BY.