Sobes.tech
Junior

Wat is het verschil tussen LEFT JOIN en RIGHT JOIN?

sobes.tech AI

Antwoord van 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