如:table1
id
a
b
c
d
e
f
g
h
itable2
id
a
c
d
e能求得id为b,f,g,h,i
就是要吧table1里面的id没出现在table2里面的全部查出来?谢谢先g

解决方案 »

  1.   

    select id from table1 where id not in (select id from table2)
      

  2.   

    select * from table1 where id not in(select id from table2)
      

  3.   

    select id from table1 where id not in(select id from table2) order by id 
      

  4.   

    DECLARE @TABLE1 TABLE(id VARCHAR(10)) 
    INSERT @TABLE1 SELECT 'a' 
    INSERT @TABLE1 SELECT 'b' 
    INSERT @TABLE1 SELECT 'c' 
    INSERT @TABLE1 SELECT 'd' 
    INSERT @TABLE1 SELECT 'e' 
    INSERT @TABLE1 SELECT 'f' 
    INSERT @TABLE1 SELECT 'g' 
    INSERT @TABLE1 SELECT 'h' 
    INSERT @TABLE1 SELECT 'i' 
    DECLARE @TABLE2 TABLE(id VARCHAR(10)) 
    INSERT @TABLE2 SELECT 'a' 
    INSERT @TABLE2 SELECT 'c' 
    INSERT @TABLE2 SELECT 'd' 
    INSERT @TABLE2 SELECT 'e' 
    SELECT * FROM @TABLE1 T WHERE NOT  EXISTS(SELECT 1 FROM @TABLE2 WHERE ID=T.ID)
    /*id
    ----------
    b
    f
    g
    h
    i(5 行受影响)*/
      

  5.   

    另一种SQL语句
    select id from table1 a where not exists(select id from table2 b where a.id=b.id)