Sobes.tech
Back to questions
Junior — Middle
65

Объясните различия между типами соединений в SQL: LEFT JOIN, RIGHT JOIN и INNER JOIN

Answer from AI

sobes.tech AI

INNER JOIN возвращает только те строки, которые совпадают по условию соединения в обеих таблицах.

LEFT JOIN возвращает все строки из левой таблицы и соответствующие строки из правой. Если в правой таблице нет совпадений, то поля правой таблицы будут заполнены NULL.

RIGHT JOIN — наоборот, возвращает все строки из правой таблицы и соответствующие из левой, с NULL там, где нет совпадений.

Пример:

SELECT * FROM A
INNER JOIN B ON A.id = B.a_id; -- только совпадающие

SELECT * FROM A
LEFT JOIN B ON A.id = B.a_id; -- все из A + совпадения из B

SELECT * FROM A
RIGHT JOIN B ON A.id = B.a_id; -- все из B + совпадения из A