Ответ
LEFT JOIN и RIGHT JOIN — это типы внешних соединений (OUTER JOIN), которые определяют, какие строки из соединяемых таблиц будут включены в результирующий набор, даже если для них нет совпадений.
LEFT JOIN
Возвращает все строки из левой (первой) таблицы и только совпадающие строки из правой таблицы. Если совпадения нет, поля из правой таблицы заполняются NULL.
-- Найти всех клиентов и их заказы (включая клиентов без заказов)
SELECT c.CustomerName, o.OrderId, o.OrderDate
FROM Customers c
LEFT JOIN Orders o ON c.CustomerID = o.CustomerID;
RIGHT JOIN
Возвращает все строки из правой (второй) таблицы и только совпадающие строки из левой таблицы. Если совпадения нет, поля из левой таблицы заполняются NULL.
-- Найти все заказы и информацию о клиентах (включая заказы без привязанного клиента)
SELECT c.CustomerName, o.OrderId, o.OrderDate
FROM Customers c
RIGHT JOIN Orders o ON c.CustomerID = o.CustomerID;
Ключевое отличие и практика
- LEFT JOIN используется гораздо чаще, так как запросы обычно строятся от основной сущности (например, от клиентов к их заказам).
- Любой RIGHT JOIN можно переписать как LEFT JOIN, просто поменяв таблицы местами. Поэтому RIGHT JOIN встречается редко — для единообразия кода предпочитают использовать только LEFT JOIN.
- INNER JOIN (внутреннее соединение) возвращает только строки, где есть совпадение в обеих таблицах, в отличие от внешних соединений.
Видео-ответы
▶
Собеседование Laravel PHP backend разработчика junior. Тренировка к собеседованию
▶
Mock Interview на Java разработчика
▶
Собеседование для Python Junior разработчика: реальное мок-интервью с теорией и лайвкодингом
▶
Собеседование на NodeJS/Typescript в СБЕР
▶
Публичное собеседование PYTHON-разработчик. JUNIOR Python мок-интервью. Джуниор Питон СОБЕС Пайтон
▶
Курзюкова Яна собеседование python разработчик. Секция SQL запросы на основе Тинькофф
▶
Public Interview for Node.js Developer
▶
Публичное собеседование PHP-разработчик [Хекслет]