Какой результат вернёт запрос №51

Если T1.a содержит 1 и 2, а T2.b содержит две единицы, результат состоит из (1,1), (1,1) и (2,NULL). Порядок строк без ORDER BY не гарантирован.

Короткий ответ

Что ответить на собеседовании

Если T1.a содержит 1 и 2, а T2.b содержит две единицы, результат состоит из (1,1), (1,1) и (2,NULL). Порядок строк без ORDER BY не гарантирован.

Подробный разбор

Ответ с пояснениями

Условие

Определите, какой вывод будет получен после выполнения следующего SQL‑запроса:

T1  T2
a  b

1  1

2  1

select T1.a, T2.b from T1 left join T2 on T2.b = T1.a

Ответ

Если T1.a содержит 1 и 2, а T2.b содержит две единицы, результат состоит из (1,1), (1,1) и (2,NULL). Порядок строк без ORDER BY не гарантирован.

Каждая подходящая строка правой таблицы даёт отдельное совпадение, поэтому единица из T1 размножается дважды. Для двойки совпадений нет, но LEFT JOIN сохраняет её с NULL справа. DISTINCT убрал бы дубли только при явном указании, а сам JOIN этого не делает.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее