2016-11-10 11 views
-1

Ich muss eine Spalte aus einer Tabelle in eine neue Spalte in einer anderen Tabelle kopieren, aber ich bekomme den folgenden Fehler.Wie aktualisiere ich Spalte aus derselben Spalte in ähnlicher Tabelle

einreihige Unterabfrage gibt mehr als eine Zeile

Dies ist die Aussage:

update order set name2 = (select name from old order); 
+0

Sie müssen angeben, wie die Zeilen aus beiden Tabellen zusammengepaßt zu werden brauchen. Haben Sie in beiden Tabellen einen Schlüssel, der gleich sein muss? Hinweis: Das von Ihnen angegebene Tag ist falsch. Hinweis: Ich habe das PL/SQL-Tag entfernt, da es sich um SQL handelt. Stattdessen habe ich den RDMS angegeben, auf dem Sie sich befinden: Oracle – trincot

Antwort

2

Sie haben eine Bedingung setzen verbinden betwwen die beiden Tabellen; Ihre Auswahl gibt alle Zeilen aus der Tabelle zurück; zum Beispiel:

create table zzztemp1 (ID1 INTEGER, NAME1 VARCHAR2(100)); 
create table zzztemp2 (ID2 INTEGER, NAME2 VARCHAR2(100)); 


INSERT INTO zzztemp1 VALUES(1, 'JOE'); 
INSERT INTO zzztemp1 VALUES(2, 'ALBERT'); 
INSERT INTO zzztemp1 VALUES(3, 'JACK'); 


INSERT INTO zzztemp2 VALUES(1, NULL); 
INSERT INTO zzztemp2 VALUES(2, NULL); 
INSERT INTO zzztemp2 VALUES(3, NULL); 


UPDATE zzztemp2 SET NAME2=(SELECT NAME1 FROM zzztemp1 WHERE 
zzztemp2.id2=zzztemp1.id1); 

SELECT * 
FROM zzztemp2; 

rollback; 


DROP TABLE zzztemp1; 
DROP TABLE zzztemp2; 
Verwandte Themen