В таблице users 100 000 строк, в таблице user_profiles — ровно одна строка на каждого user_id. Вы делаете INNER JOIN по user_id. Что верно про число строк результата?

AВсегда будет ровно 100 000 строк, потому что соответствие «один к одному» гарантирует совпадение ключей в обеих таблицах независимо от пропусков
BМожет вырасти до 100 000 × 100 000 строк из-за размножения строк при JOIN, даже если справа на каждый user_id по одной записи
CСтанет равно числу колонок в таблице user_profiles, потому что INNER JOIN соединяет столбцы и приводит результат к ширине справочника
DНе может быть больше 100 000: при соответствии «один к одному» INNER JOIN может только уменьшить число строк, если у каких-то пользователей нет профиля
Правильный ответ. При связи «один к одному» INNER JOIN не размножает строки, а может только отбросить несовпавшие ключи.

Разбор

При связи «один к одному» на каждый user_id с каждой стороны есть максимум одна строка, поэтому множителя нет. INNER JOIN вернёт только пары, где ключ есть в обеих таблицах. Если часть пользователей без профиля, число строк уменьшится; если профили есть для всех, получится 100 000. Поэтому варианты «всегда ровно 100 000» или «может вырасти до 100 000 × 100 000» некорректны для такой структуры данных.

Проверь себя · 1/3разбор после ответа
Вы считаете «уникальные покупатели по бренду». Данные: order_items(user_id, product_id) и products(product_id, brand). Один пользователь может купить несколько товаров одного бренда. Какой расчёт на объединённых данных соответствует цели и устойчив к дублированию строк?
Открыть Карьерник в Telegram

Ещё вопросы по теме «JOIN и кардинальность»