表T1有数据         表T2有数据
a列     b 列       a列     b 列
k0001    w1       k0001     w1
k0001    w2       k0001     w2
k0002    w8       k0002     w8
k0002    w9       k0003     w1     
k0003    w1       
k0004    w1
k0004    w2现在想把T1表中和T2表对应的a列数据查出来,但要对掉T1表中a列在T2表a列表中有,T1表中b列在T2表中b列没有的数据,如k0002    w9,希望查到的结果是a列
k0001
d0003
望高手指点!

解决方案 »

  1.   

    select
    T1.a列
    FROM
    T1
    LEFT JOIN
    T2
    ON
    T1.a列 = T2.a列 AND
    T1.b列 = T2.b列
    WHERE
    T2.a列 IS NULL
      

  2.   

    是的,只想想得到T1表a列的
    k0001
    k0003
      

  3.   

    k0001         w1               k0001           w1 
    k0001         w2               k0001           w2 
    k0002         w8               k0002           w8 
    k0002         w9               k0003           w1           
    k0003         w1               
    k0004         w1 
    k0004         w2select T1.a
    from T1,T2
    where T1.a=T2.a
    and T1.b=T2.b
      

  4.   


    create table T1 
    (
        a varchar(10),
        b varchar(2)
    )create table T2 
    (
        a varchar(10),
        b varchar(2)
    )insert T1 select 'k0001','w1' 
    insert T1 select 'k0001','w2'            
    insert T1 select 'k0002','w8'              
    insert T1 select 'k0002','w9'                        
    insert T1 select 'k0003','w1'               
    insert T1 select 'k0004','w1' 
    insert T1 select 'k0004','w2' 
    insert T2 select 'k0001','w1' 
    insert T2 select 'k0001','w2'            
    insert T2 select 'k0002','w8'
    insert T2 select 'k0003','w1'
    select DISTINCT T2.a
    from T2 
    where T2.a not in
               (
                  select T.a   from (select T1.a as a,T2.a as b from T1 left join T2 on  T1.a=T2.a and T1.b=T2.b) T where T.b  is null 
               )
      

  5.   

    琳·风の狼(修罗)  厉害,高手,先查出无对应的a列,这样就把K0002  w9 这个给对应上空值然后剔除掉。思路清析。
     谢谢啦,