2016-11-16 6 views
-4

Если есть две таблицы:Каков новый первичный ключ, когда мы применяем естественное соединение на двух таблицах?

table1 с атрибутами a1, a2, a3 и table2 с атрибутами b1, b2, b3. И a1 и b1 являются их соответствующими первичными ключами. Каков новый первичный ключ, когда естественное соединение применяется к двум таблицам. Есть a1, b1 объединяются, чтобы сформировать составные первичный ключ или они становятся две отдельных клавишами кандидатских

+3

Что заставляет вас думать, что он создает новый первичный ключ (любого вида), когда он создает набор данных (т. Е. Результат выбора)? Когда вы запустите выбор, результатом будет ** список из 0 или более записей **, а не новая ** таблица **. – FDavidov

+2

Я не могу понять предпосылки вопроса. Нет «нового» PK – Strawberry

+0

Итак, что можно считать первичным ключом в новой объединенной таблице? –

ответ

2

В реляционных терминах база данных результат должен иметь клавиши, соответствующие каждый ключ от одного отношения в паре с каждым ключом от других (т.е. «natural-join» ключей-кандидатов, а не только один ключ для каждого отношения). Таким образом, если A1 и B1 являются единственными ключами в вашем примере, то единственным ключом результата с естественным соединением будет (A1, B1).

Однако вы отметили свой вопрос в MySQL. MySQL - это СУБД SQL, а не реляционная. MySQL не поддерживает концепцию реляционной модели вывода ключей. В MySQL нет физической реализации какого-либо ключа в результате такого запроса.