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

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

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

Відеоурок

Telegram group

Підписуйтесь на нашу групу в Телеграмі 🇺🇦

При работе с базами данных редко бывает достаточно одной таблицы. Обычно данные распределены по разным таблицам – например, 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 місяця

Також варто подивитися

Изучение MongoDB / Работа с базой данных
8 уроків
Створення динамічного веб-сайту
7 уроків
Відеокурс з PHP, MySQL / Створення динамічного сайту
Программа на C# .NET Windows Forms
7 уроків
Уроки Java для профессионалов
14 уроків
Изучение C# WPF на практике. Создание программ на C#
10 уроків
Коментарі
Додати коментар

Поки що коментарів немає