现有三张表,表的结构如下:
table A:
NUMBER
10001
10002
10009
10005
10004table B:
NUMBER
10002
10007
10004table C:
NUMBER
10009
10008
10006
现在要查出既不在B表也不再C表中的A表中数据,即查询结果为:
NUMBER
10001
10005
这样的SQL语句该怎么写啊?

解决方案 »

  1.   

    select a.number from a
    where a.number not in (
           select b.number from b
    )
    and a.number not in (
           select c.number from c

    试试这个 
      

  2.   

    select number from A where
      not exist(select * from b,c)
      

  3.   

    一楼方法可以,也可以这样:select a.*
    from a
    left join b on a.number=b.number
    left join c on a.number=c.number
    where b.number is null and c.number is null
      

  4.   

    select number from A where 
      not in(select number from b,c)
      

  5.   


    select a from 
    (
    select 1 a from dual
    union all
    select 2 from dual
    union all
    select 3 from dual
    union all
    select 4 from dual
    union all
    select 5 from dual
    union all
    select 6 from dual) a
    minus
    select a from 
    (
    select 4 a from dual
    union all
    select 5 from dual) b
    minus
    select a from 
    (
    select 2 a from dual
    union all
    select 3 from dual
    union all
    select 4 from dual
    ) c
      

  6.   

    用not exists 效率比较高