| 

.NET C# Java Javascript Exception

1
Moin allerseits.

Ich habe zwei Tabellen, die über die ID der ersten Tabelle verknüpft sind. Jetzt habe ich erst spät erkannt, dass ein Spalte, die in der zweiten Tabelle gespeichert ist, in die erste Tabelle gehört. Tabelle1 und Tabelle2 haben eine 1:n Beziehung (1 Datensatz in Tab1 kann mehrere Datensätze in Tab2 zur Folge haben). Die betr. Spalte (heißt: lastchange) wird momentan in Tab2 in allen Datensätzen mit derselben tab1.id gleichzeitig aktualisiert. Wie bekomme ich nun hin, dass die Werte von Tabelle2 nach Tabelle1 übertragen werden?

Ich habe in Tabelle1 schon die nötige Spalte angelegt. Es müssen nur noch die Daten übertragen werden. Ich habe es schon einmal mit Subselects im Update versucht, aber ich darf ja nicht auf dieselbe Tabelle verweisen, die ich updaten will.

Folgende Konstruktion hat mir auch nicht geholfen:
SELECT @lastchange := lastchange, @kunden_id := kunden_id FROM tabelle2 GROUP BY kunden_id;
UPDATE tabelle1 SET lastchange = @lastchange WHERE id = @kunden_id ;


Ich bekomme zwar entsprechend viele Zeilen in der Ausgabe, aber es wird immer nur ein Datensatz aktualisiert. Wie bekomme ich hin, dass für jede vorhanden kunden_id in Tabelle2 `lastchange` aus der Tabelle2 zum entsprechenden Datensatz nach Tabelle1 übertragen wird?

Danke schonmal.
News:
05.03.2012
johny7 521 1 8
1 Antwort
2
Aus der Hüfte geschossen:

UPDATE tabelle1 SET lastchange = (SELECT Max(tabelle2.lastchange) FROM tabelle2 WHERE tabelle2.kunden_id = tabelle1.id);
05.03.2012
Andreas Richter 1,7k 1 2 8
Och, so einfach? Und ich hatte im Subselect noch tabelle1 abgefragt, woran das scheiterte. Kann ich im Subselect tabelle1.id abfragen, obwohl tabelle1 unter FROM nicht aufgeührt ist?
Ich werd's mal versuchen.
johny7 05.03.2012

Stelle deine Mysql-Frage jetzt!