Chyba że Twój SELECT
podzapytanie zwraca pojedynczy wiersz, twoja UPDATE
instrukcja powinna zakończyć się błędem
ORA-01427: single-row subquery returns more than one row
Ogólnie rzecz biorąc, serwatka masz skorelowaną aktualizację, potrzebujesz pewnego warunku, który wiąże wiersze w zewnętrznej tabeli T1
do wierszy w wewnętrznym podzapytaniu, aby upewnić się, że podzapytanie zwróci pojedynczy wiersz. To ogólnie wyglądałoby mniej więcej tak
UPDATE table1 t1 SET (t1.col,t1.Output) = (
SELECT t2.col, t3.Output + t2.col
FROM tabl2 t3
LEFT JOIN table1 t2 ON t3.Join_Key = t2.Join_Key
WHERE t2.col is not NULL
AND t1.some_key = t2.some_key);
Wreszcie ta UPDATE
instrukcja aktualizuje każdy wiersz w T1
. Czy to jest to, co zamierzasz? A może chcesz zaktualizować tylko te wiersze, w których na przykład znajdziesz dopasowanie w podzapytaniu?