SQL INNER JOIN: Полное руководство

SQL INNER JOIN База данных

SQL INNER JOIN

Оператор SQL INNER JOIN возвращает строки с точными значениями в двух столбцах двух таблиц. Вы можете объединить таблицу по одному или нескольким столбцам. Операторы JOIN соединяют две таблицы базы данных и сравнивают их содержимое.

Бывают случаи, когда вы хотите получить данные из двух или более таблиц одновременно и объединить результат.

Например, вы можете получить список продуктов и имена поставщиков, которые поставили эти продукты. Информация о названиях продуктов и названиях поставщиков находится в двух таблицах.

Здесь на помощь приходят соединения SQL. Используя условие соединения, вы можете объединить информацию из нескольких таблиц в следующее: один набор результатов. SQL INNER JOIN — это тип соединения, которое возвращает записи, которые имеют совпадающие значения столбцов в двух таблицах. В этом руководстве мы собираемся обсудить, как использовать INNER JOIN.

SQL INNER JOIN

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

INNER JOIN является наиболее распространённым типом SQL присоединиться. Оператор возвращает записи, которые совпадают в обеих таблицах.

Давайте посмотрим на синтаксис ключевого слова INNER JOIN :

  • SELECT name
  • FROM customers
  • INNER JOIN plans
  • ON customers.plan_id = plans.id;

Этот запрос объединяет строки из таблиц «клиенты» и «планы». Он возвращает список всех клиентов с «plan_id», равным любому идентификатору в таблице «планы».

Мы используем предложение INNER JOIN для объединения наших таблиц. Ключевое слово ON идёт после имени таблицы, к которой мы присоединяемся. Вы можете указать несколько условий после ключевого слова ON, разделив их запятыми.

Пример SQL INNER JOIN

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

Читайте также:  Подключиться к командной строке базы данных PostgreSQL Windows

Вот таблица сотрудников:

сотрудники
имя заглавие Department_id
Люк Сотрудник по продажам 1
Майк Сотрудник по продажам 1
Ханна Сотрудник по продажам 1
Джефф Старший специалист по продажам 1
Алексис Сотрудник по продажам 1
Иона Вице-президент по продажам 3
Эмма Директор по маркетингу 2

(7 рядов)

Это таблица отделов:

company_departments
Department_id имя
1 продажи
2 маркетинг
3 исполнительный

(3 ряда)

Допустим, мы хотели получить имена, должности и названия отделов для всех сотрудников. Эти данные содержатся в двух таблицах: имена и должности сотрудников находятся в таблице сотрудников. Названия отделов находятся в таблице company_departments.

Как мы получаем информацию, которую ищем?

В таблице сотрудников есть столбец с именем Department_id. В этом столбце содержится идентификатор отдела, в котором работает каждый сотрудник.

А также в таблице company_departments каждый отдел также имеет идентификатор (который является первичным ключом в таблице). Это означает, что мы можем соответствовать сотруднику department_id со списком отделов. Это позволит нам узнать название отдела, в котором работает этот сотрудник.

Давайте напишем запрос, который извлекает имя сотрудника, его должность и название отдела, в котором они работают:

SELECT Employees.Name, Employees.Title, Company_Departments.Name
FROM Employees
INNER JOIN Company_Departments
ON Employees.Department_ID = Company_Departments.Department_ID;

Наш запрос возвращает следующие совпадающие строки:

имя заглавие имя
Алексис Сотрудник по продажам Продажи
Джефф Старший специалист по продажам Продажи
Ханна Сотрудник по продажам Продажи
Майк Сотрудник по продажам Продажи
Люк Сотрудник по продажам Продажи
Эмма Директор по маркетингу Маркетинг
Иона Вице-президент по продажам Исполнительный

В первой строке мы говорим базе данных получить имя и должность сотрудника из таблицы сотрудников. Мы также получаем название отдела компании из таблицы company_departments.

Во второй строке мы указываем, что хотим получить информацию о сотрудниках из таблицы сотрудников. Затем мы используем наше ВНУТРЕННЕЕ СОЕДИНЕНИЕ, чтобы связать нашу таблицу сотрудников с таблицей company_departments, которая включает названия отделов.

Читайте также:  Data Mining и Data Science: ключевые различия для аналитиков данных

Наконец, наша последняя линия связи как сотрудников и company_departments таблицы вместе по их общих полей, в этом случае department_id.

Вывод

Оператор SQL INNER JOIN извлекает записи с двумя совпадающими значениями столбцов в двух таблицах. Оператор ON позволяет вам указать условия, при которых выполняется ваше внутреннее соединение.

Освоение объединений — важная часть запросов к базам данных SQL, и это понимание приблизит вас на один шаг к тому, чтобы стать экспертом по SQL.QL.

Оцените статью
bestprogrammer.ru
Добавить комментарий