开发者社区> 问答> 正文

gp数据库,数据量很大,需要关联多表对一张表的数据进行删除?报错

gp数据库,数据量很大,需要关联多表对一张表的数据进行删除,看下sql有没有什么好的解决办法

 

具体的sql是这样的

--  可执行

这种写法是可以进行查询的
   select t1.* from trms_sour_order t1, trms_sour_r9 t2 where t1.SHIP_ID = t2.SHIP_ID)


  --  报错

但是这个会报错
   delete t1 from trms_sour_order t1, trms_sour_r9 t2 where t1.SHIP_ID = t2.SHIP_ID


      --  报错      
    delete t1 from trms_sour_order t1 inner join trms_sour_r9 t2 on t1.SHIP_ID = t2.SHIP_ID


     -- 包含子查询   太慢  执行不出来      
    delete from  trms_sour_order where ship_id in ( select t1.ship_id from trms_sour_order t1, trms_sour_r9 t2 where t1.SHIP_ID = t2.SHIP_ID)

 

 

 

展开
收起
爱吃鱼的程序员 2020-06-08 15:43:20 1256 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
     delete from  trms_sour_order where ship_id in ( select t2.SHIP_ID fromtrms_sour_r9 t2);或者delete from  trms_sour_order where exists ( select 1 fromtrms_sour_r9 t2wheret2.ship_id=ship_id);这个看看分析一下。特别是注意是否有索引。

     

    2020-06-08 15:43:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载