Получение списка интервьюеров для определённого типа интервью

Соедините интервьюеров с таблицей связи и типами интервью, оставив тип с именем Java. Поле interview_id в таблице связи здесь трактуется как ID типа интервью.

Короткий ответ

Что ответить на собеседовании

Соедините интервьюеров с таблицей связи и типами интервью, оставив тип с именем Java. Поле interview_id в таблице связи здесь трактуется как ID типа интервью.

Подробный разбор

Ответ с пояснениями

Условие

В базе данных определены три таблицы:

create table INTERVIEW_TYPES  
(  
     id   int auto_increment primary key,  
     name varchar(255) not null,  
     constraint INTERVIEW_TYPES_name_uindex unique (name)  
);  

create table INTERVIEWERS  
(  
     id   int auto_increment primary key,  
     name varchar(255) not null,  
     constraint INTERVIEWERS_name_uindex unique (name)  
 );  

create table INTERVIEWERS_INTERVIEW_TYPES  
(  
     interview_id  int not null,  
     interviewer_id  int not null,  
     constraint INTERVIEWERS_INTERVIEW_TYPES_interview_id_interviewer_id_uindex unique (interview_id, interviewer_id)  
);

Требуется составить запрос, который вернёт всех записей из таблицы INTERVIEWERS, у которых в связанной таблице INTERVIEW_TYPES присутствует запись с именем "Java".

Ответ

Соедините интервьюеров с таблицей связи и типами интервью, оставив тип с именем Java. Поле interview_id в таблице связи здесь трактуется как ID типа интервью.

SELECT i.*
FROM INTERVIEWERS i
JOIN INTERVIEWERS_INTERVIEW_TYPES link ON link.interviewer_id = i.id
JOIN INTERVIEW_TYPES t ON t.id = link.interview_id
WHERE t.name = 'Java';

Уникальность имени типа и пары в таблице связи исключает повторы интервьюеров для данного условия. Сама схема не объявляет внешние ключи в связующей таблице; их полезно добавить для целостности. EXISTS является равноценной альтернативой, особенно если уникальность данных не гарантирована.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее