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

В чем отличие между LEFT JOIN и RIGHT JOIN?

Sobes Copilot

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

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

sobes.tech AI

LEFT JOIN (или LEFT OUTER JOIN) возвращает все строки из "левой" таблицы (первой таблицы в предложении FROM) и совпадающие строки из "правой" таблицы. Если совпадений в "правой" таблице нет, возвращаются NULL значения для столбцов из "правой" таблицы.

RIGHT JOIN (или RIGHT OUTER JOIN) возвращает все строки из "правой" таблицы (второй таблицы в предложении FROM) и совпадающие строки из "левой" таблицы. Если совпадений в "левой" таблице нет, возвращаются NULL значения для столбцов из "левой" таблицы.

По сути, RIGHT JOIN можно всегда заменить на LEFT JOIN, поменяв таблицы местами.

Пример:

Таблица users:

id name
1 Alice
2 Bob
3 Carol

Таблица orders:

user_id amount
1 100
1 150
2 200
SELECT u.name, o.amount
FROM users u
LEFT JOIN orders o ON u.id = o.user_id;

Результат LEFT JOIN:

name amount
Alice 100
Alice 150
Bob 200
Carol NULL
SELECT u.name, o.amount
FROM users u
RIGHT JOIN orders o ON u.id = o.user_id;

Результат RIGHT JOIN:

name amount
Alice 100
Alice 150
Bob 200