公司会员制度有两张表  表1是7月会员表,表2是8月会员表,8月与7月相比有新增会员和会员级别上的调整,会员级别0,1,2分别是钻,金,银 
怎么样选出:
(1)表2中新增的数据,
(2)表2中卡号相同,但是级别变化的数据
(3)表2中级别和卡号都没变化的数据卡号                  级别
12031318652095600     1    
12031318651863800     0    
12031318651899100     2    
12031318602565800     2    
12031318651881800     2    
12031313245826000     1    

解决方案 »

  1.   

    select
     * 
    from
     表2 b 
    where
     not exists(select 1 from 表1 where 卡号=b.卡号)
    or
     exists(select 1 from 表1 where 卡号=b.卡号 and 级别<>b.级别)
    or
     exists(select 1 from 表1 where 卡号=b.卡号 and 级别=b.级别)
      

  2.   

    1.
    select *
    from 表2
    where 表2.卡号 not in (select 卡号 from 表1)2.
    select 表2.*
    from 表2
    inner join 表1 on 表1.卡号 = 表2.卡号
    and 表1.级别 <> 表2.级别3.
    select 表2.*
    from 表2
    inner join 表1 on 表1.卡号 = 表2.卡号
    and 表1.级别 = 表2.级别
      

  3.   

    (1) select * from 表2 t where not exists(select 1 from 表1 where 卡号=t.卡号)(2) select * from 表2 t where exists(select 1 from 表1 where 卡号=t.卡号 and 级别<>t.级别)(3) select * from 表2 t where exists(select 1 from 表1 where 卡号=t.卡号 and 级别=t.级别)
      

  4.   

       1.select * from tb2 where 卡号 not in(select 卡号 from tb1)
       2.select * from tb1,tb2 where tb1.卡号=tb2.卡号 and tb1.级别<>tb2.级别
        3.select * from tb1,tb2 where tb1.卡号=tb2.卡号 and tb1.级别=tb2.级别
      

  5.   


    第(1)个问题:
    SELECT * FROM 表2  WHERE 卡号 NOT IN(SELECT 卡号 FROM 表1)第(2)个问题:
    SELECT * FROM 表2  WHERE 卡号 
    INNER JOIN 表1 ON 表1.卡号 = 表2.卡号 AND 表1.级别 <> 表2.级别第(3)个问题:
    SELECT * FROM 表2  WHERE 卡号 
    INNER JOIN 表1 ON 表1.卡号 = 表2.卡号 AND 表1.级别 = 表2.级别
      

  6.   

    第(1)个问题:
    SELECT * FROM 表2  WHERE 卡号 NOT IN(SELECT 卡号 FROM 表1)第(2)个问题:
    SELECT * FROM 表2  WHERE 卡号 
    INNER JOIN 表1 ON 表1.卡号 = 表2.卡号 AND 表1.级别 <> 表2.级别第(3)个问题:
    SELECT * FROM 表2  WHERE 卡号 
    INNER JOIN 表1 ON 表1.卡号 = 表2.卡号 AND 表1.级别 = 表2.级别
      

  7.   


    --问题(1) 
    select * from 表2 a where not exists(select 1 from 表1 where 卡号=a.卡号)问题(2) 
    select * from 表2 a where exists(select 1 from 表1 where 卡号=a.卡号 and 级别<>a.级别)问题(3)
     select * from 表2 a where exists(select 1 from 表1 where 卡号=a.卡号 and 级别=a.级别)
      

  8.   

    select * from 表2 t where not exists(select 1 from 表1 where 卡号=t.卡号)select * from 表2 t where exists(select 1 from 表1 where 卡号=t.卡号 and 级别<>t.级别)select * from 表2 t where exists(select 1 from 表1 where 卡号=t.卡号 and 级别=t.级别)