mysql中不允许在语句中,先执行本表的select,然后再delete的操作,就是这个意思吧
DELETE FROM quanxian WHERE uid IN (
SELECT r.uid
FROM `username` AS u, quanxian AS r
WHERE u.system_id = r.uid
AND u.state !=1
)报错如下#1093 - You can't specify target table 'quanxian' for update in FROM clause求个mysql可以执行的本语句替代语句刚才发到PHP区了。

解决方案 »

  1.   

    DELETE A FROM quanxian A 
    INNER JOIN username U
    ON u.system_id=A.UID AND u.state !=1 
      

  2.   

    delete a from quanxian a inner join (
    select uid from username u inner join quanxian r on u.system_id = r.uid where u.state !=1
    ) b on a.uid=b.uid
      

  3.   

    MYSQL有一些限制,没有办法在WHERE后再引用要删除的表名。一般是通过这种方法来进行删除。可以进一步简化为
    delete a from quanxian a inner join username u  on u.system_id = a.uid
    where u.state !=1