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

AОно не может быть больше 100 000; при one-to-one cardinality INNER JOIN может только уменьшить строки, если есть пропуски
BВсегда будет ровно 100 000 строк, потому что это one-to-one
CМожет вырасти до 100 000 * 100 000 из-за join explosion
DСтанет равно числу колонок в user_profiles
Правильный ответ. one-to-one cardinality не размножает строки, а INNER JOIN может только отбросить несовпавшие ключи.

Разбор

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

Проверь себя · 1/3разбор после ответа
Вы хотите добавить к orders атрибут category из таблицы products(product_id, category) и не изменить количество строк заказов. Что важнее всего проверить про products, чтобы избежать duplication?
Открыть Карьерник в Telegram

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