Juergen: Update / Select und WHERE über 2 Tabellen

Beitrag lesen

UPDATE tabelle1 SET ok=2, gemeindeschluessel_neu= SUBSTRING(gemeindeschluessel,1,5);

das ist wirklich die einfachste Lössung wenn es um ein Feld geht. Wenn aber das Feld aus einer anderen Tabelle kommt, geht es wiederum nicht. Ich denke der richtige Weg ist dann doch der erste…

SELECT SUBSTRING(gemeindeschluessel,1,5) AS gemeindeschluessel FROM tabelle1 FOR UPDATE;
UPDATE tabelle1 SET ok = 2, gemeindeschluessel_neu = gemeindeschluessel;

und zwar dann wenn die SELECT Abfrage komplexer wird (für mich jedenfalls)

SELECT b.ortschafts_kennziffer AS ortschafts_kennziffer  FROM tabelle1 a, tabelle2 b WHERE a.ok=4 AND a.gemeindeschluessel=b.gemeinde_kennziffer AND a.ort=b.ortschaftsname FOR UPDATE;
UPDATE tabelle1 SET ok = 5, ort_schluessel = ortschafts_kennziffer;

Nur zur besseren Verstehen! In der zweiten Tabelle sind auch die Ortsschluessel. Jeder Gemeinde hat eine Gemeindekennziffer, jede Gemeinde hat mehrere dazugehörige Orte, die unterschiedliche Ortsnummern, aber gemeinsamme Gemeindenummern haben.