Выберите записи, которые не отображаются как пара в сводной таблице - PullRequest
0 голосов
/ 29 апреля 2018

возьмем, к примеру, у меня инструкторов , предметов и instructor_subject таблицы.

instructors
-----------
1
2

subjects
--------
1
2
3

instructor_subject
--------------------------
instructor_id | subject_id
1             | 1
1             | 2

Обратите внимание, что у инструктора 1 есть 2 предмета. Теперь, как мне выбрать из сводной таблицы предметы, которых нет у инструктора 1 (то есть, у инструктора 1 и у субъекта 3). В то же время возможность извлекать другие столбцы из таблицы инструкторов и таблицы предметов. Другие столбцы - это имя инструктора, имя субъекта и т. Д.

1 Ответ

0 голосов
/ 29 апреля 2018

Вы можете использовать cross join, чтобы получить все комбинации instructors и subjects, а затем отфильтровать те, которые не соответствуют:

select i.*, s.*
from instructors i cross join
     subjects s left join
     instructor_subject si
     on si.instructor_id = i.instructor_id and si.subject_id = s.subject_id
where si.instructor_id is null;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...