Hallo,
ich habe eine Abfrage geschrieben, die mir ein plausibles Ergebnis liefert:
SELECT Cat1.ZeilenNr, Cat2.Schlüssel, Cat2.ASchlüssel, Cat1.PCatalogID, Cat1.AKey
FROM Cat1, Cat2
WHERE (Cat2.ASchlüssel = Cat1.AKey AND Cat1.PCatalogID IS NULL) OR (Cat2.ASchlüssel = Cat1.AKey AND Cat2.Schlüssel <> Cat1.PCatalogID)
Die Abfrage liefert mir korrekt 2100 Werte. Nun sollen alle Werte von Schlüssel aus Cat2 in Cat1 in PCatalogID geändert werden. Leider funktioniert das nicht.
Ich hab schon einiges ausprobiert, auch Inner Join. Leider ändert er nur andere triviale Änderungen (Datum etc, was ich hier ausgespart habe), aber das eigentliche aus der anderen Tabelle nicht. Wie muss das Update-Statement lauten?
Danke :D
Hallo,
die allg. Syntax lautet:
UPDATE
TABLE1 t1,
TABLE2 t2
SET
t1.column_name = t2.column_name
WHERE
t1.id = t2.id;
Das sollte jetzt nicht so schwer sei, aus deiner Auswahlabfrage eine Aktualisierungsabfrage zu erstellen.
Gruß knobbi38
Hallo knobbi38,
ja da "funktioniert" wie der INNER JOIN, nur das es langsamer ist. Aber mit gleichem Resultat es wird NICHT aktualisiert. Die Werte aus Table2 werden nicht in Table 1 geschrieben.
Oh man bin ich doof. Sorry, ich hab AKey und PCatalogID beim Set verwechselt. Betriebsblindheit. Deine Abfrage geht genau wie INNER JOIN, nur das INNER JOIN weniger als eine Sekunde braucht.