Мне нужно обновить несколько строк на основе значения в других строках с соответствующим идентификатором.Обновление нескольких строк на основе значений в других строках в одной таблице
Структура таблицы:
ID | Sub-ID | value
----------------------------
1 | 1 | a
1 | 2 | b
1 | 3 | c
2 | 1 | x
2 | 2 | y
2 | 3 | z
3 | 1 | k
3 | 2 | l
3 | 3 | m
мне нужно обновить значение SubID = 2 со значением SubID = 3 для конкретных идентификаторов (где ID в другой таблице)
Результат должен быть (основание по вышеуказанному):
ID | Sub-ID | value
----------------------------
1 | 1 | a
1 | 2 | c
1 | 3 | c
2 | 1 | x
2 | 2 | y
2 | 3 | z
3 | 1 | k
3 | 2 | m
3 | 3 | m
Каким будет наиболее эффективный способ его реализации?
Это то, что я прямо сейчас:
UPDATE data_tab tab1
SET (value) =
(SELECT tab2.value
FROM data_tab tab2
WHERE tab1.id = tab2.id
AND tab1.sub_id = 2 AND tab2.sub_id = 3
)
WHERE EXISTS (SELECT 1 FROM ids_table
WHERE id = tab1.id)
_ "Мне нужно обновить значение Subid = 2 со значением Subid = 3 для конкретных идентификаторов (где ID в другая таблица) «_ – Ben