Ich verwende DB2 und bin ein Anfänger in SQL. Ich habe zwei Tabellen hier:UPDATE JOIN-Anweisung für DB2
Tabelle 1:
ID | PageID
------------
1 | 101
2 | 102
3 | 103
4 | 104
Table2:
ID | SRCID | PageID
--------------------
1 | 2 | 179
2 | 3 | 103
3 | 3 | 109
Table2 und Tabelle 1 haben unterschiedliche Anzahl von Datensätzen. Table2.SCRID entspricht Table1.ID. Ich möchte die PageID in Tabelle2 aktualisieren, um zu folgen, was in PageID von Table1 angegeben wird, basierend auf der SRCID. Mein Endergebnis Table2 sollte sein:
ID | SRCID | PageID
--------------------
1 | 2 | 102
2 | 3 | 103
3 | 3 | 103
Wie kann ich dies für DB2 in SQL tun?
Ich habe versucht:
UPDATE table2
SET PageID = (SELECT t1.PageID from table1 as t1 join table2 as t2
WHERE t2.SCRID = t1.ID);
Aber die oben nicht wie ich funktioniert: als SQL-Anweisung
wurdeDB21034E Der Befehl verarbeitet, da es kein gültigen Befehlszeilenprozessor Befehl war. Während der SQL-Verarbeitung zurückgegeben: SQL0811N Das Ergebnis einer skalaren Fullselect, SELECT INTO-Anweisung oder VALUES INTO-Anweisung ist mehr als eine Zeile. SQLSTATE = 21000
Das Problem hier ist, gibt es keine eindeutige Spalte für mich zu verbinden, so dass jede Spalte ein einzigartiges Ergebnis bekommt .. oder so scheint es mir. Bitte helfen Sie? :(
Dieses Dank funktioniert :) – evkwan
@evkwan: einen schönen Tag;)! –