MySQL – Update mittels JOIN

Nicht selten ist es beim Aktualisieren von Datensätzen notwendig, die Bedingung für in Frage kommende Datensätze bei der Update-Anweisung einzufügen. Wer keine Kenntnis darüber besitzt, wird eine zweite Abfrage vorschalten und das Ergebnis in der eigentlichen Update-Anweisung verwerten.

Dabei ist das Updaten von Datensätzen mittels bei MySQL sehr trivial. Folgende Abfrage aktualisiert alle Datensätze von tabelle1 (aktiv wird auf 1 gesetzt) welche in tabelle2 existieren.

  1. UPDATE tabelle1 AS a
  2. JOIN tabelle2 AS b
  3. ON a.id = b.id
  4. SET a.aktiv=1

Folgende Abfrage setzt das Flag “aktiv” in beiden Tabellen bei Datensätzen, die in beiden Tabellen vorkommen.

Quelltext   
  1. UPDATE tabelle1 AS a
  2. JOIN tabelle2 AS b
  3. ON a.id = b.id
  4. SET a.aktiv=1,
  5. b.aktiv=1

Die Verknüpfung der Tabellen ist beliebig erweiterbar. Selbst Subselects oder Derived Tables sind kein Problem.

categories SQL

Keine Kommentare

Noch keine Kommentare

RSS Feed für Kommentare zu diesem Artikel. TrackBack URI

Hinterlasse einen Kommentar