Объединить три таблицы в SQL

Ob Edinit Tri Tablicy V Sql



Одной из основных особенностей реляционных баз данных является возможность разделения связанных данных на различные компоненты, называемые «таблицами». В отличие от других баз данных, реляционные базы данных требуют сбора данных из различных таблиц и объединения результатов в значимые данные.

Именно здесь вступает в игру функциональность объединений. В реляционных базах данных соединения — это одна из наиболее распространенных операций, которая позволяет объединять данные из двух или более таблиц в единый результирующий набор.







Однако вы можете обнаружить, что большинство объединений охватывают только две таблицы. Однако соединения могут быстро распространиться на три или более таблиц. Хотя может быть более эффективно изучать CTE при работе с более чем тремя таблицами, соединения могут быть очень эффективными и быстрыми, когда речь идет о трех таблицах.



В этом руководстве мы рассмотрим шаги, необходимые для выполнения объединения трех таблиц в SQL.



Начиная

Прежде чем мы начнем, предположим, что у вас есть три простые таблицы со столбцами, как показано ниже:





Таблица 1:
идентификатор | имя | возраст

Таблица 2:
идентификатор | город | страна

Таблица3:
идентификатор | зарплата | позиция


Этот макет позволяет нам быстро понять, как работает объединение трех таблиц и как мы можем настроить их с помощью SQL-запроса.

Объединить три таблицы в SQL

При выполнении любого объединения в SQL основной компонент начинает с определения общего столбца или набора столбцов в каждой из таблиц, которые необходимо объединить. Затем вы можете использовать эти общие столбцы, чтобы связать таблицу вместе, позволяя SQL правильно и эффективно интерпретировать и объединять данные.



Хотя в SQL существуют различные типы соединений, основным компонентом является сходство таблиц.

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

В случае с предыдущими таблицами мы можем выполнить внутреннее соединение трех таблиц, как показано в следующем запросе:

ВЫБЕРИТЕ Table1.name, Table2.city, Table3.salary
ИЗ Таблицы1
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таблица 2
ON Table1.id = Table2.id
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таблица 3
ПО Table2.id = Table3.id;


Давайте рассмотрим предыдущий запрос шаг за шагом:

    1. Первый — это оператор SELECT, который позволяет нам выбирать столбцы, которые мы хотим включить в результирующий набор. В данном случае нас интересует столбец имени из таблицы 1, столбец города из таблицы 2 и столбец зарплаты из таблицы 3.
    2. Используя оператор FROM, мы указываем целевые таблицы, из которых мы хотим получить заданные столбцы. В этом случае мы получаем из таблицы 1.
    3. Далее следует предложение INNER JOIN. Мы используем это предложение, чтобы соединить таблицу 1 с таблицей 2. Мы также используем предложение ON, чтобы указать условие, связывающее две таблицы, которым в данном случае является столбец ID.
    4. Второе INNER JOIN позволяет нам соединить результирующий набор из первого соединения с таблицей 3. Используя предложение ON, мы сообщаем SQL, что хотим соединить результирующий набор и таблицу 3 на основе столбца ID.
    5. Набор результатов из всех трех таблиц включается в выбранные столбцы.

Практический пример:

Хотя в предыдущем примере показано, как соединить три таблицы, давайте возьмем более практический пример и воспользуемся базой данных Sakila.

В этом случае мы объединяем таблицы пленки, проката и инвентаря. Запрос выглядит следующим образом:

ВЫБЕРИТЕ Rental.rental_id, Rental.Rental_Date, фильм.название, inventory.inventory_id
ОТ проката
ПРИСОЕДИНЯЙТЕСЬ к инвентарю на rent.inventory_id = inventory.inventory_id
ПРИСОЕДИНЯЙТЕСЬ к фильму по inventory.film_id = film.film_id
ГДЕ фильм.название = 'ГОНКА НА ЗАКАТЕ' ;


Объяснение:

    1. В этом случае мы используем оператор SELECT, чтобы выбрать столбцы Rental_id, Rental_date и inventory_id из таблицы Rental.
    2. Первое предложение JOIN связывает таблицу аренды с таблицей inventory с помощью столбца inventory_id.
    3. Второе предложение JOIN объединяет результирующий набор из первого соединения с таблицей фильмов, используя столбец film_id.
    4. Наконец, мы используем предложение WHERE для фильтрации набора результатов только для включения целевого заголовка.

В результате таблица выглядит следующим образом:

Заключение

Для соединения трех таблиц в SQL необходимо определить общий столбец или набор столбцов в каждой таблице и использовать соответствующий тип соединения (внутреннее, левое, правое или полное внешнее) для связывания таблиц вместе. Как показано в этом руководстве, вы должны понимать, как соединить три таблицы в SQL.