Назад к вопросам
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 |