删除 这条语句查询到以外的数据
select autoid,task_no FROM CHECK_INFO  WHERE task_no  in(select task_no from CHECK_TASK)

解决方案 »

  1.   

    not in 找不到in以外的数据 
      

  2.   

    TRY.
    DELETE  FROM CHECK_INFO  WHERE task_no not  in(select task_no from CHECK_TASK)
      

  3.   

    DELETE FROM CHECK_INFO  WHERE task_no  not in (select distinct task_no from CHECK_TASK)
      

  4.   

    select autoid,task_no FROM CHECK_INFO
    这样查找的数据59722行数据
    select autoid,task_no FROM CHECK_INFO  WHERE task_no  in(select task_no from CHECK_TASK)
    这样查找的数据39409行数据
     
    我现在要删除除了39409以外的数据select autoid,task_no FROM CHECK_INFO  WHERE task_no not in(select task_no from CHECK_TASK)
    这样找不到数据,一行都没
      

  5.   


    啊,not in 出来0行不可能吧
      

  6.   

    task_no 有null的? 试试
    select autoid,task_no FROM CHECK_INFO WHERE task_no is null  有多少行?
      

  7.   

    delete FROM CHECK_INFO a 
    WHERE not exists (select 1 from CHECK_TASK b where A.task_no=B.task_no)
      

  8.   

    楼主以为语句错误,实际不是的,DELETE FROM CHECK_INFO WHERE task_no not in (select distinct task_no from CHECK_TASK) 是正确的,没有删除要要删除的行应该是 CHECK_INFO.task 或
    CHECK_TASK.task_no 在实际存储时有问题,如加入了空格之类的!
      

  9.   

    这个是设置外键完整性么?感觉查询语句应该没错才对么~~如果是做触发器的话可以直接删除deleted里面的记录。
    不过真的很奇怪,第二个加个not的话应该是可以出现你要的结果才对。。
      

  10.   

    ...not in 可能会出错 
    因为task_no可能为null 使用not exists