求一SQL语句!

liuhx 2010-10-28 09:17:21
现在tableA(cNo,cType),表内容('aaa','test1)('bbb','test2)
tableB(cNo,cItmNo,cName),表数据('aaa','1','aaa1'),('aaa','2','aaa2')('aaa','3','aaa3)
('bbb','1','bbb1'),('bbb','2','bbb2'),('bbb','3','bbb3')

tableX(cNo,cType),表内容('aaa','test1)('bbb','test2)

tableY(cNo,cItmNo,cName)数据('aaa','1','aaa1'),('aaa','2','aaa2')('aaa','3','aaa3)
('bbb','1','bbb1'),('bbb','2','bbb2')
现在我要写一语句实现tableY中没有的这一笔记录('bbb','3','bbb3')
...全文
86 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2010-10-28
  • 打赏
  • 举报
回复
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
dawugui 2010-10-28
  • 打赏
  • 举报
回复
现在我要写一语句实现tableY中没有的这一笔记录('bbb','3','bbb3')

select m.* from tableB m where not exists(select 1 from tableY n where n.cNo = m.cNo and n.cItmNo = m.cItmNo )

其他两表有什么用?
lyflcear 2010-10-28
  • 打赏
  • 举报
回复
个人思路,用group 再比较记录数量展示数据
siegebaoniu 2010-10-28
  • 打赏
  • 举报
回复
这个:select tablex.* from tablex........
siegebaoniu 2010-10-28
  • 打赏
  • 举报
回复
select * from tablex
inner join
(select * from tableB
except
select * from tableY)a
where tablex.cNo=a.cNo
liuhx 2010-10-28
  • 打赏
  • 举报
回复
tableY没有的记录而table有的记录,显示出tablex中的对应('bbb','test2)
huanghe63 2010-10-28
  • 打赏
  • 举报
回复
select * from tableb b
where not exists(select * from tabley y where b.cno=y.cno and b.citmno=y.citmno and c.cname=y.cname )


是找出了tableY在tableb中没有的这一笔记录('bbb','3','bbb3')



现在我要写一语句实现tableY中没有的这一笔记录('bbb','3','bbb3')???????
Dream_1986 2010-10-28
  • 打赏
  • 举报
回复
好像没看明白。。
xuam 2010-10-28
  • 打赏
  • 举报
回复
select * from tableY where cNo='bbb' and cItmNo='3' and cName='bbb3'

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧