PDA

View Full Version : SQL update mit select



sven70
21-06-21, 09:31
Hallo zusammen,

ich habe einen select mit mehreren joins und group by und order by.
Das Ergebnis was da herauskommt passt auch von den Daten.

Nun muss ich aber ein Update machen auf Basis des Ergebnisses des selects.

Also ungefähr so

update lib.tab
set feld1= feld aus dem select,
set feld2 = feld aus dem select,....

and exists( hier würde ich dann meinen ursprungs select einsetzen)

Kann ich das so machen oder gibt es da eine einfacher Version für den Update?

Ich hatte mir auch überlegt das ich aus den select eine tab erstelle und dann das update mit der neuen tab abfrage.
Nur da scheitert es mal wieder an den richtigen Sql Statements.

Vielleicht hat ja jemand eine Idee.
Glaube muss mal wieder mein SQL in einer Schulung auffrischen.

prsbrc
21-06-21, 10:12
Wenn die neuen Werte der Felder Feld1 und Feld2 aus derselben Abfrage kommen kannst du diese in einem Rutsch ändern: SET (Feld1, Feld2) = (SELECT new1, new2 FROM xxx)

sven70
21-06-21, 11:21
Wer suchet der findet.
Ich kann in DBeaver ja Tabellen anlegen.
Lege die jetzt da an mit meinen Select und mache dann das update auf der neuen Tabelle.

DBeaver gefällt mir jetzt schon.

Fuerchau
21-06-21, 11:23
Wobei du mit dem "update ... where exists (select ...) " natürlich recht hast um unerwünschte Nebeneffekte (NULL-Update, NULL-Fehler) zu vermeiden.