Sobes.tech
Junior

Quelle est la différence entre LEFT JOIN et RIGHT JOIN?

sobes.tech IA

Réponse de l'IA

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