2016-11-10 64 views
-1

我需要將列從一個表複製到另一個表中的新列,但出現以下錯誤。如何從類似表中的同一列更新列

單行子查詢返回不止一行

這是結:

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

您需要指定兩個表中的行需要如何匹配。兩張表中的密鑰必須相同嗎?注意:你指定的標籤是錯誤的。注意:我刪除了PL/SQL標籤,因爲它是普通的SQL。相反,我指定了你所在的RDMS:Oracle – trincot

回答

2

必須設置速滑運動員的肌肉在兩個表聯接條件;您的選擇返回表中的所有行;例如:

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; 
相關問題