delete ana.* from table1 as ana
where
ana.qname=(select ID from tab1 where LOCAL_NAME='xxxxx')
and exists(select 'x' from table2 an
where
ana.node_id=an.id and
an.QNAME_ID IN (select ID from tab1 where LOCAL_NAME in('bbb')));
为什么上面的查询在mysql.same中不起作用查询在oracle中工作。
错误代码:1054。“where子句”
中的未知列'ana.qname'
答案 0 :(得分:0)
先验,您的查询看起来不错。我首先将其格式化并限定所有列名称:
delete ana
from table1 ana
where ana.qname = (select t1.ID
from tab1 t1
where t1.LOCAL_NAME = 'xxxxx'
) and
exists (select 1
from table2 an
where ana.node_id = an.id and
an.QNAME_ID IN (select t1.ID
from tab1 t1
where t1.LOCAL_NAME in ('bbb')
)
);
我认为错误非常明确:table1.qname
不存在。我还要补充说,比较名为" name"被称为" id"看起来很可疑。我怀疑你只是在那里使用错误的列名。意图可能是qname_id
。