Sobes.tech
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