dedlfix: SQL Frage zu update

Beitrag lesen

Tach!

Mit views kenne mich mich nicht aus.

Eine View ist eine vorgefertigte Query, die komplex sein kann, aber sich als View so einfach wie eine Tabelle verwenden lässt, mit demselben SELECT-Statement wie für eine Tabelle.

Gibt es nichts in der Art

UPDATE b SET Lob = SELECT Lob FROM ... CASE oder IF... ??

Wenn die Tabelle b immer genau die Inhalte der anderen drei enthalten soll ohne zusätzliche oder fehlende Eintrage, würde ich nicht mit UPDATE hantieren wollen, sondern mit TRUNCATE und INSERT ... SELECT .... Wenn es denn eine physische Tabelle sein soll. Das UPDATE behandelt ja nur die vorhandenen Datensätze und keine in a,f,t neu hinzugekommenen. INSERT ... ON DUPLICATE KEY UPDATE wäre auch noch eine Variante.

Das SELECT-Statement wiederum wäre auch gleich die Grundlage für die View.

SELECT 'a' part, aId ID, Lob FROM a
UNION
SELECT 'f' part, fId ID, Lob FROM f
UNION
SELECT 't' part, tId ID, Lob FROM t

Wenn du unbedingt die physische Tabelle und das UPDATE brauchst, dann kannst du ebenfalls dieses SELECT nehmen, es als Subquery in das UPDATE-Statement joinen und über WHERE die passenden Datensätze zueinander finden.

Ansonsten wäre ich gerne bereit, views zu lernen. Kannst Du mir das grob erklären?

Die konkrete Syntax hab ich nicht im Kopf, aber die gibts im MySQL-Handbuch.

dedlfix.