У меня есть две таблицы.Обновить первичный ключ столбца таблицы на основе таблицы сопоставления
- таблица содержит записи со столбцом A (номер типа, первичный ключ).
- таблица содержит записи со столбцами A, B (номер типа). Второй представляет таблицу сопоставления.
В чем проблема?
мне нужно сделать переназначение всех записей в таблице 1, в частности, колонок А на колонку B на основе таблицы отображения 2. Но проблема состоит в том, что таблица 1 содержат записи, которые имеют также значения B из таблицы 2 (в колонке А). Это означает, что когда я сделаю переназначение таблицы 1, тогда может возникнуть проблема с уникальностью, потому что столбец А в таблице 1 является первичным ключом.
Я попытался выбрать счетчик всех записей, которые нужно переустановить, но я точно не знаю, если мой запрос верен.
Вот эти две таблицы:
select * from temp_1;
select * from temp_2;
Здесь вы выберите с кол:
SELECT count(*) FROM temp_1 T1
WHERE EXISTS (SELECT 1 FROM temp_2 T2 WHERE T2.a = T1.a
and not exists (select 1 from temp_1 T1b where T2.b = T1b.a));
Образец данных:
Таблица 1:
1 , 2, 3, 4, 5, 40, 50
Таблица 2:
1-11, 2-22, 3-33, 4-40 , 5-50
Результат Таблица 1 после переназначения:
11, 22, 33, 4, 5, 40, 50 Остающаяся проблема значения
Эти дерзкие отмечены значения являются проблемными, если вы меня понимаете.
Можете ли вы обновить свой вопрос, сообщив нам, какую версию SQL (например, MySQL, SQL Server и т. Д.) Вы используете вместе с образцами данных? –
@TimBiegeleisen Название читает ** ORACLE **. – FDavidov
@FDavidov Извините ...Я не видел никаких тегов –