Seite 1 von 1

SQL Update Befehl über zwei Tabellen

Verfasst: 17.03.2007, 15:08
von pvdb
Hi,

in meiner Anwendung muss ich Mysql Tabellen neu aufülle, d.h. Tabelle leeren und neu füllen. Da einige Daten nicht verloren gehen sollen, werden diese in einer Zwischen Tabelle gespeichert. Dies sieht so aus:

Code: Alles auswählen

// daten die beibehalten werden sollen in zwischentabelle kopieren
$sql = "TRUNCATE TABLE tmp";
mysql_query($sql);
$sql = "insert into tmp (select id, viewed, page_comment, delivery_comment from data)";
mysql_query($sql);
Dies haut soweit wunderbar hin. Nur ich weiß nicht wie ich die Daten zurückspielen soll, nachdem ich data neu gefüllt habe:

Code: Alles auswählen

// daten zurückschreiben
$sql = "update data set values (id, viewed, page_comment, delivery_comment) (select id, viewed, page_comment, delivery_comment from tmp)";
mysql_query($sql);
Dieser sql ist natürlich quatsch, aber ich weiß nicht wie er aussehen muss. Geht dies eigentlich mit einem SQL befehl? Ansonsten müsste ich Zeile für Zeile durchgehen, wobei ein SQL mir lieber wäre.

Phil

Verfasst:
von

Verfasst: 17.03.2007, 15:11
von Airport1
du kannst m.E. ein update ueber beide tables bauen a la

UPDATE tableA AS ta, tableB AS tb SET ta.columnX = tb.columnY WHERE ta.id = tb.id;

Dein quasi UnterQuery mit SELECT * geht m.E. nur bei einem INSERT..

Verfasst: 17.03.2007, 18:35
von pvdb
hi,

danke für das beispiel, damit komme ich weiter :)

Phil