Если T1.a содержит 1 и 2, а T2.b содержит две единицы, результат состоит из (1,1), (1,1) и (2,NULL). Порядок строк без ORDER BY не гарантирован.
Какой результат вернёт запрос №51
Если 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 этого не делает.