我已經創建了兩個表,T1和T2各有一列,分別爲abc和xyz。我在每個表格中插入了2行(數值1和2)。刪除語句 - 子查詢應該拋出錯誤
當我運行命令"select abc from t2"
時,它會拋出一個錯誤,指出表格中不存在列abc。但是,當我運行命令"delete from t1 where abc in (SELECT abc from t2);"
時,將刪除2行。
不應該刪除失敗,因爲我已經使用了子查詢中失敗的相同語句?
create table t1(abc number); - 創建表
create table t2(xyz number); - 創建表格
insert into t1 values(1); - 一行插入
insert into t1 values(2); - 一行插入
插入t2值(1); - 一行插入
插入t2值(2); - 插入一行
從t2中選擇abc; --ORA-00904 - >因爲在t2中不存在列abc
從t1中刪除where abc in(SELECT abc from t2); --2行刪除
我想這是因爲'DELETE'語句中的'abc'意味着't1'中的'abc' – luiges90
嘗試在最後一個查詢中運行select以確認哪些是返回的行,然後您將有更好的主意哪些abc值正在返回 –
感謝您的答覆。當我使用別名「從t1中刪除abc in(在t2中選擇t2.abc)時,它會拋出一個錯誤。但是不應該拋出一個錯誤,即使沒有這個錯誤,因爲我已經使用了」select abc from t2「? – Orangecrush