SQL: Join
Теория: Введение
Под капотом практически любой IT-системы, приложения или сайта есть базы данных. Их используют для хранения, чтения, а также анализа данных. В рамках этого курса речь пойдет о работе с табличными (реляционными) базами данных. Все примеры, как обычно, будут относиться к СУБД PostgreSQL.
Зачем нужно объединять несколько таблиц
Правильно организованные табличные базы хранят данные по правилам нормализации данных. В нормализованном виде информация о разных сущностях хранится в разных таблицах.
Для примера представим, что мы работаем с книжным каталогом. Будет правильно, если мы разделим информацию об авторах и о произведениях.
Первую таблицу мы назовем authors и будем хранить в ней идентификатор, имя и страну автора:
Для второй таблицы мы выберем имя books и запишем туда идентификатор, название, ссылку на автора и дату публикации книги:
При этом эти таблицы связаны — для каждой книги хранится ссылка на ее автора в поле books.author_id.
Некоторые задачи можно решить с помощью запроса к одной таблице, но чаще требуется собирать информацию из нескольких таблиц. Например, если мы захотим отобразить список всех книг вместе с информацией об авторах, то потребуются данные из обеих таблиц.
Так выглядит ожидаемый результат:
Мы дополнили информацию о книге данными о ее авторе, соединив данные из двух таблиц. Подобные объединения данных — это типичная задача на практике.
В этом курсе мы расскажем о том, как эффективно решать такие задачи с помощью оператора JOIN, который также называют соединением. Мы изучим подробно различные виды соединений, каждый из них рассмотрим на примере и приведем примеры SQL запросов. Мы научимся выполнять соединения более двух таблиц, научимся использовать псевдонимы и разберем несколько приемов, основанных на соединениях.
В конце курса мы научимся использовать альтернативные инструменты:
- Подзапросы
- Обобщенные табличные выражения (Common Table Expressions — CTE)
- Представления (
VIEW)
.png)














