我有這條SQL語句更新SQLPLUS中的aisle from table itemloc_tbl
列aisle from table itemloc_tmp
,並且它一直返回像主題中的錯誤。更新SQL錯誤ORA-01427:單行子查詢返回多個行
更新:從itemloc_tmp
ITEM_ID SID SEC AIS
------------- --- --- ---
0007AAAAAAAAA AA3 12
0007BBBBBBBBB BB2 13
0007CCCCCCCCC CC8 11
這
這是樣本數據是來自itemloc_tbl
ITEM_ID SID SEC AIS
------------- --- --- ---
0007AAAAAAAAA
0007BBBBBBBBB
0007CCCCCCCCC
樣本這是我的sql語句
UPDATE ct.itemloc_tbl t1 SET
t1.aisle = (SELECT t2.aisle FROM ct.itemloc_tmp t2 WHERE t2.item_id = t1.item_id)
WHERE t1.item_id IN (SELECT t2.item_id FROM ct.itemloc_tmp t2 WHERE t2.item_id = t1.item_id)
所以,我想更新aisle
列n從itemloc_tmp
到itemloc_tbl
,但上述聲明不起作用。有人會指出我錯在哪裏嗎?
您的子查詢返回多個結果(如錯誤所示) - 應使用哪個值更新「過道」列?樣本數據和預期結果將會很有幫助。 – sgeddes
像錯誤說:'SELECT t2.aisle FROM ct.itemloc_tmp t2 WHERE t2.item_id = t1.item_id'返回多個行。我猜'item_id'值不是唯一的?這是正常的嗎? – sstan
是的,'item_id'和'aisle'不是唯一的。而且,我正試圖找到一種方法來更新「過道」。因爲,sqlplus似乎沒有連接功能 – Alexander