求教mysql4.0版本 delete from a where id not in (select id from b)如何实现。
mysql4.0不支持not in的语句
我要删除a表中,所有用户id不在用户表(b)中的垃圾记录下面的语句在.net中执行报错说query empty,在mysql中执行好像又正确
delete a.*  FROM a LEFT JOIN b ON a.user_id=b.id WHERE b.id IS NULL;

解决方案 »

  1.   

    这样子行吗?delete from a where not exists (select 1 from b where b.id=a.id)
      

  2.   

    try:
    select a.* into newtt from tt a left join tt1 b on a.user_id=b.id
    WHERE   b.id IS NULL;
    再用新表覆盖旧表
      

  3.   

    这样呢?delete a from a left join b on a.id=b.id where b.id is null;
      

  4.   

    delete from a.* using a left join b on a.id=b.id where b.id is null;
    试试吧,本来楼主的那个sql语句就是对的了,是不是.net里面的问题啊? 
      

  5.   

    有两个可能性: 1)MySQL 4.0的局限(我没有环境,也不太了解) 2)使用环境的限制
    按理没可能的。
      

  6.   

    建议先在mysql的环境调试,看看SQL语句是否被支持.
    如果没问题的话再查查使用环境的限制
      

  7.   


    delete a,b from a,b where a.id != b.id;
      

  8.   

    看戏的: delete a,b from a,b .. 不会把a,b的记录都删了吧?
      

  9.   

    呵呵,我的sql语句正确是mysql的.net驱动的缘故,感谢大家,发工资了