#4 – Связи между таблицами (JOIN)

#4 – Связи между таблицами (JOIN)

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

Видеоурок

При работе с базами данных редко бывает достаточно одной таблицы. Обычно данные распределены по разным таблицам – например, users (пользователи) и orders (заказы). Чтобы связать эти данные между собой и получить осмысленный результат, в SQL используется оператор JOIN.


Что делает JOIN?

Оператор JOIN объединяет строки из двух (или более) таблиц на основе общего поля. В большинстве случаев это внешний ключ — например, orders.user_id ссылается на users.id.


Пример базовых таблиц:

-- Таблица пользователей
SELECT * FROM users;
+----+------+---------------+
| id | name | email         |
+----+------+---------------+
| 1  | Alex | [email protected] |
| 2  | Bob  | [email protected]  |
+----+------+---------------+

-- Таблица заказов
SELECT * FROM orders;
+----+---------+----------+-------+
| id | user_id | product  | price |
+----+---------+----------+-------+
| 1  | 1       | iPad     | 1200  |
| 2  | 2       | iPhone   | 900   |
| 3  | 2       | MacBook  | 2500  |
+----+---------+----------+-------+

INNER JOIN

Тип соединения INNER JOIN возвращает только те строки, которые есть в обеих таблицах. Если пользователь сделал заказ, он появится в результате, если нет — не будет показан.

SELECT users.name, orders.product, orders.price
FROM users
INNER JOIN orders ON users.id = orders.user_id;

Результат:

+------+----------+-------+
| name | product  | price |
+------+----------+-------+
| Alex | iPad     | 1200  |
| Bob  | iPhone   | 900   |
| Bob  | MacBook  | 2500  |
+------+----------+-------+

LEFT JOIN

Оператор LEFT JOIN возвращает все строки из левой таблицы (в данном случае users), даже если у пользователя нет заказов. Для таких пользователей значения из правой таблицы будут NULL.

SELECT users.name, orders.product
FROM users
LEFT JOIN orders ON users.id = orders.user_id;

RIGHT JOIN

Аналогично, RIGHT JOIN возвращает все строки из правой таблицы (например, orders), даже если в левой таблице (users) нет соответствующих записей.

SELECT users.name, orders.product
FROM users
RIGHT JOIN orders ON users.id = orders.user_id;

FULL JOIN

Тип FULL JOIN объединяет обе таблицы, возвращая все строки из обеих сторон. Если нет совпадения, в соответствующих полях будет NULL.

SELECT users.name, orders.product
FROM users
FULL JOIN orders ON users.id = orders.user_id;

Исходный код

Весь код будет доступен после подписки на проект!

Задание к уроку

Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Также стоит посмотреть

Создание динамического веб сайта
7 уроков
Программа на C# .NET Windows Forms
7 уроков
Изучение MongoDB / Работа с базой данных
8 уроков
Уроки SQL для начинающих
8 уроков
Изучение языка PHP, а также MySQL
28 уроков
Изучение C# WPF на практике. Создание программ на C#
10 уроков
Комментарии
Добавить комментарий

Пока комментариев нет