Назад к вопросам
Junior
64
questionbank

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

Sobes Copilot

Получайте ответы в реальном времени

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

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