У меня следующая проблема: у меня есть две таблицы TAB_1
и TAB_2
.
В TAB_1
Я хотел бы заполнить столбец FEAT_A1
соответствующим значением в TAB_2
. Следовательно, я объединяю обе таблицы по их общей особенности FEAT_B
.
К сожалению, для FEAT_B2
-ID в TAB_2
существует несколько записей. Я хотел бы использовать соответствующую запись, для которой FEAT_D2
является максимальным.
Я могу выполнить эту операцию с кодом, показанным ниже. К сожалению, код очень медленный, так как в каждом совпадении мне приходится выполнять один заказ и одну операцию извлечения.
Можете ли вы придумать более эффективный способ программирования?
Комууточнить, вот пример TAB_2
записей:
FEAT_A2 FEAT_B2 FEAT_C2 FEAT_D2
"A" 42 "SOMETHING" 7
"B" 42 "SOMETHING" 11
"D" 42 "SOMETHING" 1
"A" 42 "SOMETHING" 3
в TAB_1
, для FEAT_B1 = 42
, я хотел бы установить FEAT_A1 = "B"
.
UPDATE TAB_1
SET TAB_1.FEAT_A1 = (
SELECT FEAT_A2 FROM TAB_2
WHERE TAB1.FEAT_B1 = TAB2.FEAT_B2
AND TAB2.FEAT_C2 = 'SOMETHING'
ORDER BY TAB2.FEAT_D2 DESC
FETCH FIRST 1 ROW ONLY);