SELECT stud.*, itm.*, comp.*
FROM student stud, item itm
LEFT OUTER JOIN completion comp
ON stud.id = comp.studentId AND itm.id = comp.itemId
WHERE comp.studentId IS NULL
Это выбирает все строки из student
и item
, для которых есть нет записи в completion
.
Базовым выбором является крест продукт всех student
с и всех item
с.
Соединение external соединяет student
, item
и completion
без ограничение выбора строк.
Условие WHERE
затем ограничивает результирующий набор только теми строками, которые после внешнего соединения имеют NULL
studentId
в completion
(любоедругой ненулевой столбец completion
будет работать.)