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

Курс по SQL

Урок 25: Левое соединение (LEFT JOIN): Использование левого соединения

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

Основы LEFT JOIN

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

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

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

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

Синтаксис LEFT JOIN

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Упражнения

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

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

Решение:

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

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

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

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

Решение:

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

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

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

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

Решение:

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

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

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

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

Решение:

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

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

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