公司会员制度有两张表 表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)表2中新增的数据,
(2)表2中卡号相同,但是级别变化的数据
(3)表2中级别和卡号都没变化的数据卡号 级别
12031318652095600 1
12031318651863800 0
12031318651899100 2
12031318602565800 2
12031318651881800 2
12031313245826000 1
*
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.级别)
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.级别
2.select * from tb1,tb2 where tb1.卡号=tb2.卡号 and tb1.级别<>tb2.级别
3.select * from tb1,tb2 where tb1.卡号=tb2.卡号 and tb1.级别=tb2.级别
第(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.级别
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.级别
--问题(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.级别)