← Назад ко всем вопросам

Как работает INNER JOIN

1️⃣ Как кратко ответить

INNER JOIN объединяет строки из двух таблиц на основе совпадения значений в указанных столбцах. Он возвращает только те строки, где есть совпадение в обеих таблицах.

2️⃣ Подробное объяснение темы

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

Зачем нужен INNER JOIN

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

Как работает INNER JOIN

Представьте, что у вас есть две таблицы: Customers и Orders. Таблица Customers содержит информацию о клиентах, а таблица Orders — о заказах. Каждая запись в таблице Orders связана с записью в таблице Customers через столбец CustomerID.

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

Объяснение кода:

  • SELECT Customers.CustomerName, Orders.OrderID: выбираем столбцы CustomerName из таблицы Customers и OrderID из таблицы Orders для отображения в результате.

  • FROM Customers: указываем, что основной таблицей для выборки является Customers.

  • INNER JOIN Orders: присоединяем таблицу Orders к таблице Customers.

  • ON Customers.CustomerID = Orders.CustomerID: задаем условие соединения, где CustomerID из таблицы Customers должно совпадать с CustomerID из таблицы Orders.

Пример работы

Предположим, у нас есть следующие данные:

Customers:

CustomerID CustomerName
1 Alice
2 Bob
3 Charlie

Orders:

OrderID CustomerID
101 1
102 2
103 1

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

CustomerName OrderID
Alice 101
Alice 103
Bob 102

Как это работает

INNER JOIN возвращает только те строки, где есть совпадение в обеих таблицах. В нашем примере, только те заказы, которые имеют соответствующего клиента в таблице Customers, будут включены в результат. Если бы в таблице Orders был заказ с CustomerID, которого нет в таблице Customers, этот заказ не был бы включен в результат.

Применение

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

Тема: SQL и базы данных
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки