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

В чем разница между оператором join и оператором left join?

Sobes Copilot

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

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

sobes.tech AI

Оператор JOIN (или INNER JOIN) возвращает строки, где есть совпадения в обеих таблицах. Оператор LEFT JOIN (или LEFT OUTER JOIN) возвращает все строки из левой таблицы и совпадающие строки из правой таблицы. Если в правой таблице нет совпадений, возвращается NULL.

-- INNER JOIN
SELECT *
FROM table1
JOIN table2 ON table1.id = table2.id;

-- LEFT JOIN
SELECT *
FROM table1
LEFT JOIN table2 ON table1.id = table2.id;

Пример:

Допустим, у нас есть две таблицы: Пользователи и Заказы.

Таблица Пользователи:

id имя
1 Иван
2 Петр
3 Анна

Таблица Заказы:

id user_id товар
10 1 Книга
11 1 Фильм
12 2 Музыка
  • INNER JOIN таблиц Пользователи и Заказы по user_id вернет:
id (польз) имя id (заказ) user_id товар
1 Иван 10 1 Книга
1 Иван 11 1 Фильм
2 Петр 12 2 Музыка
  • LEFT JOIN таблиц Пользователи (слева) и Заказы (справа) по user_id вернет:
id (польз) имя id (заказ) user_id товар
1 Иван 10 1 Книга
1 Иван 11 1 Фильм
2 Петр 12 2 Музыка
3 Анна NULL NULL NULL