У меня есть 3 стола со студентами/школьная информация.3 стола соединяются с одним мостом между ними
*students* table has ID | First Name | Last Name
*classes* table has ID | Class Name | Department
*matrix* table has ID |class_id | student_id
Мне нужно сделать запрос и получить все студенты, все классы, и NULL, где нет совпадения в матрицы таблицы. матрица таблица в основном, где я пишу, какой класс каждый студент зарегистрирован в.
Я использовал
SELECT *
FROM matrix
LEFT JOIN students AS students ON matrix.student_id = students.id
LEFT JOIN classes AS classes ON matrix.class_id = classes.id
Но это просто возвращает студентов, которые имеют соответствующие предметы. Мне также нужен ученик, у которого нет соответствующего класса.
Пример: http://sqlfiddle.com/#!9/bc9bf/2/0
В скрипку я ожидал бы Johanna также отображаются в запросе с NULL | NULL в соответствующем class_id
и student_id
LEFT JOIN, начиная с '' СТУДЕНТОВ не matrix' решает его – amdixon
'-3' является довольно суровый ... иногда кажется, что если кто-то бросает камень, все следуют. Вопрос не в том, что плохо, может быть, мое невежество велико, но это не должно быть фактором наказания, который я думаю. – Rikard