DELETE from sys_paybycps where payid in(SELECT a.payid FROM sys_paybycps a RIGHT JOIN sys_membersbycps ON a.username=b.username where b.channelid='11' AND pay_time BETWEEN '1389651211' and '1389691287');  
报错:You can't specify target table 'sys_paybycps' for update in FROM clause我应该怎么写勒

解决方案 »

  1.   

    DELETE a from sys_paybycps  a 
    inner JOIN sys_membersbycps ON a.username=b.username where b.channelid='11' AND pay_time BETWEEN '1389651211' and '1389691287'
      

  2.   

    CREATE TABLE tmp as SELECT a.payid FROM sys_paybycps a RIGHT JOIN sys_membersbycps b ON a.username=b.username where b.channelid='11' AND pay_time BETWEEN '1389651211' and '1389691287';
    DELETE FROM sys_paybycps where payid in(SELECT payid FROM tmp);
    DROP TABLE tmp;这种方法和楼上的比那个更好一点勒