Без ограничений ключей INNER JOIN даёт от 0 до N×M строк. FULL JOIN — от max(N,M) до max(N×M,N+M), если после соединения нет фильтрации.
У тебя две таблицы, в одной N строк, во второй M. Сколько минимальная и максимальная может получиться строк при inner join и full join этих таблиц?
Без ограничений ключей INNER JOIN даёт от 0 до N×M строк. FULL JOIN — от max(N,M) до max(N×M,N+M), если после соединения нет фильтрации.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Без ограничений ключей INNER JOIN даёт от 0 до N×M строк. FULL JOIN — от max(N,M) до max(N×M,N+M), если после соединения нет фильтрации.
Каждая совпавшая пара создаёт строку; FULL JOIN дополнительно сохраняет каждую строку, у которой нет пары. Полное совпадение даёт N×M, полное отсутствие совпадений — N+M. Поэтому максимальное число строк FULL JOIN не всегда N×M: две несовпадающие одноэлементные таблицы дадут 2 строки. Минимум достигается, когда строки меньшей стороны покрыты совпадениями без лишнего размножения. Уникальность ключей сужает эти границы.