У меня есть следующие таблицы с некоторой информацией, вставленной в них. Вот пример:
Стол Человек
id_person name
--------------------------
1 name1
2 name2
3 name3
4 name4
5 name5
6 name6
Стол Профессор
id_professor (references id_person)
------------
1
2
5
6
Стол Студент
id_student (references id_person)
----------
1
3
4
5
Я хочу выполнить select
, который показывает почти все данные из всех таблиц, но только с теми людьми, которые являются студентами ИЛИ профессором. Итак, вывод, который я хочу получить, учитывая этот пример:
name id_professor id_student
-------------------------------------------
name2 2 NULL
name3 NULL 3
name4 NULL 4
name6 6 NULL
Как я могу это сделать?
Я пытался выполнить этот запрос без какого-либо успеха:
select p.name, s.id_student, pr.id_professor from
person p inner join student s on p.id_person = s.id_student right join professor r on s.id_student = pr.id_professor
where (s.id_student is null) or (pr.id_professor is null);