Sie können zusätzliche Tabellen in einem UPDATE
hinzufügen
-Anweisung, die diese bevorzugte Form berücksichtigt:
UPDATE books b
SET author_id = a.author_id
FROM authors a
WHERE b.author = a.author_name;
Drei Gründe:
-
Es ist sicherer. Ihre Abfrage schreibt einen NULL-Wert in jede Zeile, in der kein passender Autor gefunden wird. Das spielt in Ihrem Fall keine Rolle, kann aber möglicherweise zu Datenverlusten bei ähnlichen Abfragen führen, bei denen Sie bereits Daten in der zu aktualisierenden Spalte haben. Meine Alternative tut nichts, wenn kein passender Autor gefunden wird.
-
Es ist schneller. Das oben für einen. Aber auch, weil Unterabfragen korreliert wie Sie Skala schrecklich haben. Das Zusammenführen einer Tabelle ist im Allgemeinen schneller, insbesondere bei mehr als ein paar Zeilen.
-
Es ist sauberer und lässt sich leichter an zusätzliche Spalten anpassen.