try:DELETE FROM A WHERE exists(SELECT 1 FROM B where BID=A.AID) 

解决方案 »

  1.   

    加索引,有重复加group by 或distinct
    DELETE
    FROM A
    WHERE AID in( SELECT distinct BID FROM B)
      

  2.   

    DELETE  A WHERE exists(SELECT 1 FROM B where BID=A.AID) 
      

  3.   

    SELECT distinct BID FROM B 这里面的数据已经没重复了
      

  4.   

    DELETE A
    FROM A, B
    WHERE A.AID = B.BID 两个ID加索引
      

  5.   

    试试这个
    delete a
    from a join b on a.aid = b.bid
      

  6.   

    删除从表与主表数据的方法一样
    不与索引与关DELETE 
    FROM A主表
    WHERE AID in( SELECT BID FROM B) DELETE 
    FROM A从表
    WHERE AID in( SELECT BID FROM B) 
    B表就一个字段 BID 
      

  7.   

    DELETE a 
    FROM a , b
    where a.aid = b.bid
      

  8.   

    估计用IN,exists都没有这个快.(建议对aid , bid加索引)DELETE a 
    FROM a , b
    where a.aid = b.bid
      

  9.   

    删除从表40W(总150W数据)数据5分内完成 
    主表8000(总8W数据)数据 5分没反应
    写法都一样都用IN 杂效率差那么多呢,问题是在这里 
    我的问题不是数据大的问题今天没时间了
    空闲时候我再测试下
    DELETE a 
    FROM a , b 
    where a.aid = b.bid
      

  10.   

    哈哈 果然是触发器问题 
    那2张表以前用ERWIN建立的 默认建了触发器 
    大乌龟这种写法好DELETE a 
    FROM a , b
    where a.aid = b.bid
    学习了 谢谢大家