Объединение таблиц, связанных внешним ключом
Давайте объединим эти две таблицы, чтобы глубже проанализировать данные!
Возможно, вы уже знакомы с тем, как работают объединения в SQL — из курса Intro to SQL for Data Science (последнее упражнение) или из курса Joining Data in PostgreSQL.
Вот краткое напоминание об общей структуре объединений:
SELECT ...
FROM table_a
JOIN table_b
ON ...
WHERE ...
Внешние и первичные ключи формально не обязательны для запросов с объединением, однако они очень помогают: по ним сразу понятно, чего ожидать от данных. Например, можно быть уверены, что записи, на которые ссылается таблица A, всегда присутствуют в таблице B — а значит, объединение из таблицы A всегда найдёт соответствие в таблице B. Если бы это было не так, ограничение внешнего ключа было бы нарушено.
Это упражнение является частью курса
Введение в реляционные базы данных в SQL
Инструкции к упражнению
- С помощью
JOINобъедините таблицыprofessorsиuniversitiesпо условиюprofessors.university_id = universities.id, то есть сохраните только те записи, в которых внешний ключ таблицыprofessorsсовпадает с первичным ключом таблицыuniversities. - Отфильтруйте записи по условию
university_city = 'Zurich'.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
-- Select all professors working for universities in the city of Zurich
SELECT professors.lastname, universities.id, universities.university_city
___ professors
___ ___
ON ___.university_id = universities.___
___ universities.university_city = ___;