22,207
社区成员
发帖
与我相关
我的任务
分享
create table tableA(cNo varchar(10),cType varchar(10))
insert into tablea values('aaa','test1')
insert into tablea values('bbb','test2')
create table tableB(cNo varchar(10),cItmNo varchar(10),cName varchar(10))
insert into tableb values('aaa','1','aaa1')
insert into tableb values('aaa','2','aaa2')
insert into tableb values('aaa','3','aaa3')
insert into tableb values('bbb','1','bbb1')
insert into tableb values('bbb','2','bbb2')
insert into tableb values('bbb','3','bbb3')
create table tableX(cNo varchar(10),cType varchar(10))
insert into tablex values('aaa','test1')
insert into tablex values('bbb','test2')
create table tableY(cNo varchar(10),cItmNo varchar(10),cName varchar(10))
insert into tabley values('aaa','1','aaa1')
insert into tabley values('aaa','2','aaa2')
insert into tabley values('aaa','3','aaa3')
insert into tabley values('bbb','1','bbb1')
insert into tabley values('bbb','2','bbb2')
go
--tablea , tablex的用处在哪里?
select m.* from tableB m where not exists(select 1 from tableY n where n.cNo = m.cNo and n.cItmNo = m.cItmNo )
/*
cNo cItmNo cName
---------- ---------- ----------
bbb 3 bbb3
(所影响的行数为 1 行)
*/
--四个表都用上?
select m.* from tableB m where m.cNo in (select cNo from tablea) and
not exists(select 1 from tableY n where n.cNo in (select cNo from tablex) and n.cNo = m.cNo and n.cItmNo = m.cItmNo )
/*
cNo cItmNo cName
---------- ---------- ----------
bbb 3 bbb3
(所影响的行数为 1 行)
*/
drop table tablea , tableb ,tablex , tabley
select * from tablex
inner join
(select * from tableB
except
select * from tableY)a
where tablex.cNo=a.cNo