连表更新

Posted 月图灵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了连表更新相关的知识,希望对你有一定的参考价值。

(1)update db_zxzhld_bak.t_zhld_zbajxx set d_larq =
(select larq from db_zxzhld_bak.cacheTable where db_zxzhld_bak.t_zhld_zbajxx.c_ajbh = db_zxzhld_bak.cacheTable.c_ajbh) where c_zblx in (\'2001\',\'2002\');
更新757726条数据耗时3h。

(2)update db_zxzhld_bak.t_zhld_zbajxx t1 set d_larq = t.larq from db_zxzhld_bak.cacheTable t where t.c_ajbh = t1.c_ajbh AND t1.c_zblx in (\'2001\',\'2002\');
修改过后的sql耗时6.5s

第一个sql查询其实是一个循环查询,特别耗时,类似于:
select c_bh,(select d_larq from t2) as larq from t1 ,嵌套循环。

以上是关于连表更新的主要内容,如果未能解决你的问题,请参考以下文章

SQLDML语句-SQL更新与删除:单表更新删除与连表更新删除语法

SQL 连表更新

连表更新

mysq 连表更新

Django之数据库连表操作

SQL 语句,postgres的数据库的连表查询