Jak powinno wyglądać zapytanie? Mam dwie tabele A i B które posiadają trzy kolumny ID, STATUS, CENA i kolumna B dodatkowo posiada WIEK. I chce w tabeli A zaktualizować STATUS danymi z STATUS z kolumny B jak ID są równe
0
1
jak nie chcesz pętli robić to w oracle powinno się udać coś takiego:
UPDATE
(SELECT A.status as OLD, B.status as NEW
FROM TableA A INNER JOIN TableB B ON A.ID = B.ID
) t
SET t.OLD = t.NEW
można też spróbować merge
MERGE into table1
USING table2
ON (table1.id = table2.id)
WHEN MATCHED THEN UPDATE SET table1.status = table2.status
lub najprostszy
for rec in (select id, status from tabela2) loop
update tabela1
set status = rec.status
where id = rec.id;
end loop;
pisałem z głowy bo nie mam pod ręką bazki
1
update A
set STATUS = B.STATUS
from B
where A.ID = B.ID