Sobes.tech
Junior
95
questionbank

Как работает SQL Join?

Ответ от нейросети

sobes.tech AI

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: Возвращает декартово произведение двух таблиц. Результирующий набор содержит все возможные комбинации строк из обеих таблиц.

Синтаксис:

SELECT column_name(s)
FROM table1
JOIN_TYPE table2
ON table1.column_name = table2.column_name;

Пример 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:

SELECT Orders.order_id, Customers.customer_name
FROM Orders
INNER JOIN Customers ON Orders.customer_id = Customers.customer_id;

Результат:

order_id customer_name
1 Alice
2 Bob
3 Alice
4 NULL

Исправленный результат INNER JOIN:

order_id customer_name
1 Alice
2 Bob
3 Alice