Зарегистрируйтесь, чтобы продолжить обучение

INNER JOIN (внутреннее соединение) SQL: Join

В этом уроке мы рассмотрим INNER JOIN или внутреннее соединение. Это соединение возвращает сочетания строк из двух таблиц, которые удовлетворяют условию соединения.

Применяем INNER JOIN

Допустим, у нас есть таблица с авторами и таблица с книгами. Мы хотим отобразить на сайте список книг вместе с именами их авторов.

Таблица с книгами:

books

book_id book_author_id title
500 1 Евгений Онегин
501 2 Анна Каренина
502 2 Война и мир

Таблица с авторами:

authors

author_id author_name
1 А.С. Пушкин
2 Л.Н. Толстой
3 А.П. Чехов

books.book_author_id ссылается на authors.author_id — это связь, которая позволяет узнать имя автора книги.

Воспользуемся INNER JOIN, чтобы получить список авторов с их книгами:

SELECT
    author_name,
    title
FROM books -- первая таблица
INNER JOIN authors -- вторая таблица
    ON book_author_id = author_id; -- условие соединения таблиц

View on DBFiddle

Имя первой таблицы указывается после FROM. Следом идет инструкция INNER JOIN и имя второй таблицы. Далее идет слово ON и условие связывания таблиц.

Результат выполнения запроса:

author_name title
А.С. Пушкин Евгений Онегин
Л.Н. Толстой Анна Каренина
Л.Н. Толстой Война и мир

С помощью INNER JOIN мы смогли построить список, в котором рядом с книгой указано имя ее автора. Результат содержит только такие пары, в которых есть и автор, и книга.

С помощью схемы опишем работу INNER JOIN в общем виде:

Схема работы INNER JOIN. Результат содержит только те пары, для которых выполнилось условие соединения — совпал цвет строк.

inner-join

Для каждой строки из первой таблицы INNER JOIN пытается найти строки из второй таблицы так, чтобы выполнилось условие соединения. Если во второй таблице будет несколько подходящих строк — в результат попадут все такие пары. Если в первой или во второй таблице есть строки, для которых не нашлась подходящая пара — они не попадут в результат.

Выводы

В этом уроке мы изучили как пользоваться INNER JOIN — инструментом для связывания строк из разных таблиц. Это соединение отбирает только такие пары строк, которые удовлетворяют специальному условию соединения.

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff