查询永远运行ORACLE

时间:2014-10-10 02:14:38

标签: sql

当记录不在另一个用户表中时,我试图更新一个表中的isdeleted列。我的问题是查询l已经写了永远的运行。如何最好地写下面的查询。

update TBLG2O_REGISTER a set a."isDeleted" = '1' 
where  a."UserID" not in (select k."UserID" from TBLG2O_USER k)

2 个答案:

答案 0 :(得分:1)

答案是特定于数据库引擎。不同数据库引擎的性能特征差别很大,而且您无法指定正在使用的数据库服务器。

然而,子查询经常是MySQL的致命弱点;如果这是MySQL,我不会感到惊讶。如果是这样,以下方法应该具有更好的MySQL性能特征:

update TBLG2O_REGISTER a left join TBLG20_USER k using(UserID)
set a.isDeleted = '1' where k.UserID is null;

答案 1 :(得分:0)

终于开始工作了谢谢你的帮助

 Update  TBLG2O_REGISTER a set a."isDeleted" = '1' where a."UserID" in (select p."UserID"
  from TBLG2O_REGISTER p left join TBLG2O_USER k on p."UserID" =k."UserID"  
 where k."UserID" is null)