У меня есть две таблицы, из которых один столбец/поле одинаково в обеих таблицах, мне нужно обновить таблицу A данными из таблицы B. Здесь значение таблицы Ax необходимо брать и сравнивать с Bw, а значение эквивалентности Bz необходимо обновить в Ax х значение отличается от x1, x2 и т.д .. поэтому каждое значение должно быть принято и по сравнению с ш в таблице В и значения, что эквивалентно г должны быть обновлены в х, x1, x2 и т.д. в таблице А.Каков правильный способ уменьшить несколько операторов обновления в oracle
Table A (columns j, x, x1,x2,x3..x20 and so on)
---------
j x x1 x2 ..x20 and y y1 y2 .. y20
Table B (columns w and z)
--------
w z
UPDATE TableA a SET a.x = (SELECT b.w
FROM TableB b
WHERE a.x = b.z)
WHERE a.j='somevalue';
Если я напишу так, мне нужно написать 40 инструкций по обновлению, есть ли простой способ сделать эти обновления.
И подзапрос может возвращать несколько строк, и мне тоже нужно его уточнить.
Спасибо, Ашраф
Вы говорите, что у вас есть целая куча столбцов, которые должны быть одинаковыми в таблицах A и B? –
куча колонок в TABLEA необходимо сравнить в справочной таблице таблицы B. Таким образом, здесь им по сравнению с Ax Bw, а затем принимать эталонное значение Bz и обновляя его обратно в Ax. Так что здесь Ax, потребности A.x1..A.x20 для сравнения и обновления обратно в таблицу со ссылочными значениями в таблице B – blackpanther
На первый взгляд это выглядит как ужасный дизайн базы данных. Кажется, x1, x2, ... лучше быть строками, чем столбцами. В любом случае, как выглядят обновления для x1, x2 и т. Д. * Точно так же, как и для x, поэтому я просто заменяю x на x1 и т. Д.? –