Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Access-SQL Update aus anderer Tabelle funktioniert nicht.

Begonnen von fischli, September 11, 2024, 09:21:01

⏪ vorheriges - nächstes ⏩

fischli

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

Knobbi38

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

fischli

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.


fischli

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.