17:20
Внутреннее соединение (INNER JOIN): Использование внутреннего соединения.

Курс по SQL

Урок 24: Внутреннее соединение (INNER JOIN): Использование внутреннего соединения

В этом уроке мы подробно рассмотрим использование внутреннего соединения (INNER JOIN) в SQL. Внутреннее соединение используется для выборки строк, которые имеют совпадающие значения в обеих таблицах. Мы изучим синтаксис и примеры использования INNER JOIN.

Основы INNER JOIN

INNER JOIN возвращает только те строки, которые имеют совпадающие значения в обеих таблицах. Рассмотрим пример соединения таблиц «Студенты» и «Курсы» по столбцу «КурсID»:

SELECT Студенты.Имя, Курсы.Название
FROM Студенты
INNER JOIN Курсы ON Студенты.КурсID = Курсы.ID;

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

Имя | Название
Иван | Математика
Мария | Физика

Синтаксис INNER JOIN

Синтаксис INNER JOIN следующий:

SELECT столбцы
FROM таблица1
INNER JOIN таблица2 ON таблица1.совпадающий_столбец = таблица2.совпадающий_столбец;

Вы можете выбирать любые столбцы из обеих таблиц, указав их в разделе SELECT.

Использование псевдонимов таблиц

Для упрощения запроса и повышения его читаемости вы можете использовать псевдонимы таблиц. Рассмотрим пример использования псевдонимов таблиц:

SELECT s.Имя, c.Название
FROM Студенты AS s
INNER JOIN Курсы AS c ON s.КурсID = c.ID;

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

Имя | Название
Иван | Математика
Мария | Физика

Соединение нескольких таблиц

Вы можете использовать INNER JOIN для соединения более двух таблиц. Рассмотрим пример соединения таблиц «Студенты», «Курсы» и «Преподаватели» по столбцам «КурсID» и «ПреподавательID»:

SELECT s.Имя, c.Название, p.Имя AS Преподаватель
FROM Студенты AS s
INNER JOIN Курсы AS c ON s.КурсID = c.ID
INNER JOIN Преподаватели AS p ON c.ПреподавательID = p.ID;

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

Имя | Название | Преподаватель
Иван | Математика | Петров
Мария | Физика | Иванов

Фильтрация данных при использовании INNER JOIN

Вы можете использовать условия в предложении WHERE для фильтрации данных, возвращаемых INNER JOIN. Рассмотрим пример выборки студентов, обучающихся на курсе «Математика»:

SELECT s.Имя, c.Название
FROM Студенты AS s
INNER JOIN Курсы AS c ON s.КурсID = c.ID
WHERE c.Название = 'Математика';

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

Имя | Название
Иван | Математика

Упражнения

Упражнение 1: Соединение таблиц с использованием INNER JOIN

Выполните соединение таблиц «Студенты» и «Курсы» для выборки имен студентов и названий курсов, на которых они учатся.

Решение:

SELECT Студенты.Имя, Курсы.Название
FROM Студенты
INNER JOIN Курсы ON Студенты.КурсID = Курсы.ID;

Объяснение: Мы использовали команду INNER JOIN для соединения таблиц «Студенты» и «Курсы» по столбцу «КурсID».

Упражнение 2: Использование псевдонимов таблиц

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

Решение:

SELECT s.Имя, c.Название
FROM Студенты AS s
INNER JOIN Курсы AS c ON s.КурсID = c.ID;

Объяснение: Мы использовали псевдонимы таблиц «s» для «Студенты» и «c» для «Курсы», чтобы сделать запрос более читаемым.

Упражнение 3: Соединение нескольких таблиц

Выполните соединение таблиц «Студенты», «Курсы» и «Преподаватели» для выборки имен студентов, названий курсов и имен преподавателей, которые преподают эти курсы.

Решение:

SELECT s.Имя, c.Название, p.Имя AS Преподаватель
FROM Студенты AS s
INNER JOIN Курсы AS c ON s.КурсID = c.ID
INNER JOIN Преподаватели AS p ON c.ПреподавательID = p.ID;

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

Упражнение 4: Фильтрация данных при использовании INNER JOIN

Выполните соединение таблиц «Студенты» и «Курсы» и выберите имена студентов, которые обучаются на курсе «Физика».

Решение:

SELECT s.Имя, c.Название
FROM Студенты AS s
INNER JOIN Курсы AS c ON s.КурсID = c.ID
WHERE c.Название = 'Физика';

Объяснение: Мы использовали команду WHERE для фильтрации данных и выборки студентов, обучающихся на курсе «Физика».

Категория: SQL | Просмотров: 72 | Добавил: Admin | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: