Aktualizacja kolumny danymi z innej kolumny

Aktualizacja kolumny danymi z innej kolumny
TM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 91
0

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

woolfik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1619
1

jak nie chcesz pętli robić to w oracle powinno się udać coś takiego:

Kopiuj
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

Kopiuj
MERGE into table1
USING table2
ON (table1.id = table2.id)
WHEN MATCHED THEN UPDATE SET table1.status = table2.status

lub najprostszy

Kopiuj
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

wemibo
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: okolice Warszawy
  • Postów: 128
1
Kopiuj
update A
set STATUS = B.STATUS 
from B 
where A.ID = B.ID

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.