我已经创建了两个表,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