17:20
Правое соединение (RIGHT JOIN): Использование правого соединения.

Курс по SQL

Урок 26: Правое соединение (RIGHT JOIN): Использование правого соединения

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

Основы RIGHT JOIN

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

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

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

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

Синтаксис RIGHT JOIN

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Упражнения

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

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

Решение:

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

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

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

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

Решение:

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

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

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

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

Решение:

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

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

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

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

Решение:

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

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

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