Junior
86
questionbank
Как работает SQL Join?
Ответ от нейросети
sobes.tech AI
SQL JOIN объединяет строки из двух или более таблиц на основе связанного столбца между ними. Существует несколько типов JOIN:
INNER JOIN: Возвращает строки, где есть совпадения значений в обеих таблицах.LEFT (OUTER) JOIN: Возвращает все строки из левой таблицы и совпадающие строки из правой. Если совпадений в правой таблице нет, возвращаютсяNULLзначения для столбцов правой таблицы.RIGHT (OUTER) JOIN: Возвращает все строки из правой таблицы и совпадающие строки из левой. Если совпадений в левой таблице нет, возвращаютсяNULLзначения для столбцов левой таблицы.FULL (OUTER) JOIN: Возвращает все строки из обеих таблиц. Если совпадений нет, возвращаютсяNULLзначения для соответствующих столбцов.CROSS JOIN: Возвращает декартово произведение двух таблиц (каждая строка из первой таблицы объединяется с каждой строкой из второй).
Синтаксис обычно выглядит так:
SELECT столбец1, столбеце2...
FROM таблица1
JOIN таблица2 ON таблица1.общий_столбец = таблица2.общий_столбец;
Пример INNER JOIN:
SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;
Рассмотрим таблицы customers и orders:
customers
| customer_id | customer_name |
|---|---|
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
orders
| order_id | customer_id | amount |
|---|---|---|
| 101 | 1 | 100 |
| 102 | 2 | 150 |
| 103 | 1 | 200 |
| 104 | 4 | 50 |
Результат INNER JOIN будет:
| order_id | customer_name |
|---|---|
| 101 | Alice |
| 102 | Bob |
| 103 | Alice |
Результат LEFT JOIN (orders LEFT JOIN customers):
| order_id | customer_id | amount | customer_name |
|---|---|---|---|
| 101 | 1 | 100 | Alice |
| 102 | 2 | 150 | Bob |
| 103 | 1 | 200 | Alice |
| 104 | 4 | 50 | NULL |