UPDATE mit FROM und JOIN-ähnliche Aktualisierungen
Aktualisieren Sie Zeilen mit Werten aus einer anderen Tabelle mithilfe von UPDATE ... FROM (PostgreSQL) und der standardmäßigen MERGE-Anweisung.
UPDATE mit FROM und JOIN-ähnliche Aktualisierungen ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
Grundlegendes UPDATE
Ändern Sie Werte in passenden Zeilen:
UPDATE users SET full_name = 'Alice Adams' WHERE id = 1;Mehrere Spalten
Eine durch Kommas getrennte SET-Liste:
UPDATE users
SET full_name = 'Alice', last_login = NOW(), visits = visits + 1
WHERE id = 1;Viele Zeilen aktualisieren
Wählen Sie mit WHERE einfach mehr Zeilen aus:
UPDATE orders SET status = 'archived'
WHERE created_at < NOW() - INTERVAL '5 years';UPDATE mit Unterabfrage
Berechnen Sie den neuen Wert anhand einer anderen Abfrage:
UPDATE products
SET review_count = (
SELECT COUNT(*) FROM reviews WHERE reviews.product_id = products.id
);UPDATE … FROM (PostgreSQL)
UPDATE im JOIN-Stil – übernehmen Sie Werte aus einer anderen Tabelle:
UPDATE products p
SET stock = i.qty
FROM inventory i
WHERE i.product_id = p.id;UPDATE … FROM mit mehreren Tabellen
Die FROM-Liste kann mehrere Tabellen enthalten:
UPDATE invoices inv
SET tax_rate = r.rate
FROM users u
JOIN rates r ON r.country = u.country
WHERE inv.user_id = u.id;Standard-SQL: UPDATE … FROM über eine korrelierte Unterabfrage
Portables Äquivalent, jedoch langsamer:
UPDATE products p
SET stock = (SELECT qty FROM inventory i WHERE i.product_id = p.id);MERGE für INSERT/UPDATE/DELETE
PostgreSQL 15+ unterstützt MERGE für kombinierte Operationen – siehe die UPSERT-Lektion.
RETURNING bei UPDATE
Geben Sie die aktualisierten Zeilen in einem Round-Trip zurück:
UPDATE orders SET status = 'shipped', shipped_at = NOW()
WHERE id = $1
RETURNING id, status, shipped_at;Aktualisieren mit CASE
Bedingte neue Werte:
UPDATE orders
SET status = CASE
WHEN paid_at IS NOT NULL THEN 'paid'
WHEN created_at < NOW() - INTERVAL '24h' THEN 'expired'
ELSE status
END;Achten Sie auf ein fehlendes WHERE
UPDATE users SET active = false; aktualisiert JEDE Zeile. In der Produktion:
- Führen Sie zuerst ein SELECT aus, um die Anzahl der Zeilen zu überprüfen
- Kapseln Sie den Vorgang in eine Transaktion und prüfen Sie das Ergebnis vor COMMIT
- Verwenden Sie
BEGIN; ...; SELECT count(*) FROM users WHERE active = false; ROLLBACK;als Probelauf
UPDATE-Performance
Ein UPDATE erstellt eine neue Zeilenversion und markiert die alte als veraltet (MVCC). Tabellen mit häufigen Aktualisierungen können dadurch anwachsen – das wird in der Lektion zu VACUUM/MVCC behandelt.
Zusammenfassung
UPDATE … FROM ist das UPDATE im JOIN-Stil, mit dem sich Massenkorrekturen sauber durchführen lassen.
- Immer WHERE verwenden – nie vergessen
- RETURNING zur Überprüfung verwenden
- In einer Transaktion mit ROLLBACK testen
Kurzer Test
Mit welcher UPDATE-Syntax können Sie in PostgreSQL auf eine andere Tabelle verweisen?
Häufig gestellte Fragen
Ist die Lektion „UPDATE mit FROM und JOIN-ähnliche Aktualisierungen“ kostenlos?
Ja — der vollständige Text von „UPDATE mit FROM und JOIN-ähnliche Aktualisierungen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „UPDATE mit FROM und JOIN-ähnliche Aktualisierungen“?
Aktualisieren Sie Zeilen mit Werten aus einer anderen Tabelle mithilfe von UPDATE ... FROM (PostgreSQL) und der standardmäßigen MERGE-Anweisung. Du übst SQL Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um SQL Academy zu starten?
Keine Vorkenntnisse erforderlich. SQL Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „UPDATE mit FROM und JOIN-ähnliche Aktualisierungen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser SQL Academy-Lektion Code schreiben und ausführen?
Ja. Jede SQL Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- INSERT mit mehreren Zeilen
- UPSERT: ON CONFLICT DO UPDATE (PostgreSQL)
- UPDATE mit FROM und JOIN-ähnliche Aktualisierungen
- DELETE mit USING und sichere Muster