SQL JOIN объединяет строки из двух или более таблиц на основе связанного столбца между ними. Типы JOIN определяют, какие строки будут включены в результирующий набор:
INNER JOIN: Возвращает строки, имеющие совпадающие значения в обеих таблицах.LEFT JOIN (или LEFT OUTER JOIN): Возвращает все строки из левой таблицы и совпадающие строки из правой таблицы. Если совпадений в правой таблице нет, поля из правой таблицы будут NULL.RIGHT JOIN (или RIGHT OUTER JOIN): Возвращает все строки из правой таблицы и совпадающие строки из левой таблицы. Если совпадений в левой таблице нет, поля из левой таблицы будут NULL.FULL JOIN (или FULL OUTER JOIN): Возвращает все строки, когда есть совпадение в одной из таблиц. Комбинированный результирующий набор содержит все строки из обеих таблиц, заполняя поля NULL там, где нет совпадений.CROSS JOIN: Возвращает декартово произведение двух таблиц. Результирующий набор содержит все возможные комбинации строк из обеих таблиц.Синтаксис:
sql
Пример INNER JOIN:
Предположим, у нас есть таблицы Orders (id заказа, id клиента) и Customers (id клиента, имя клиента).
Таблица Orders:
| order_id | customer_id |
|---|---|
| 1 | 101 |
| 2 | 102 |
| 3 | 101 |
| 4 | 103 |
Таблица Customers:
| customer_id | customer_name |
|---|---|
| 101 | Alice |
| 102 | Bob |
| 104 | Charlie |
Запрос INNER JOIN:
sql
Результат:
| order_id | customer_name |
|---|---|
| 1 | Alice |
| 2 | Bob |
| 3 | Alice |
| 4 | NULL |
Исправленный результат INNER JOIN:
| order_id | customer_name |
|---|---|
| 1 | Alice |
| 2 | Bob |
| 3 | Alice |