导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

请用SQL语言写出下列两个查询:

jinchengcn 2003-01-10 09:01:31
请用SQL语言写出下列两个查询:

R 读者关系(借书证号,姓名,单位)
B 图书关系(登陆号,书名,分类号,作者,出版单位)
R-B 借书关系(借书证号,登陆号,借书日期)

1 找出未被借阅的图书名;
2 找出这样一些借书证号,它们所登记的登陆号包含了证号14002所登记全部图书的登陆号。
...全文
11 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
jinchengcn 2003-01-13
请教一下hjhing(winding):

这个函数是用那种语言写的?我只学过一点简单的SQL语言!
回复
alexwoowf 2003-01-10
select * from b where 登陆号 not in (select 登陆号 from r-b ) --1

select a.借书证号 from r-b a where a.登陆号 in
(select b.登陆号 from r-b b where 借书证号='14002') --2
回复
hjhing 2003-01-10
2.
CREATE FUNCTION isC (@UserID varchar(30))
RETURNS int
AS

declare @c1 int,@c2 int
select @c1=count(distinct 登陆号) from RB where 借书证号= @userid or 借书证号 = '14002'
select @c2=count(distinct 登陆号) from RB where 借书证号 = '14002'

if @c1=@c2
return 1
else
return 0



--------above is your function

select 借书证号 from RB
where dbo.isC(借书证号)=1
回复
yelook 2003-01-10
2.
select t1.借书证号 from (select count(*) as num,k.借书证号 from (select a.* from R-B a inner join (select 登陆号 from R-B where 借书证号=14002) b on a.登陆号=b.登陆号) k group by k.借书证号) t1 inner join ( select count(*) as num from R-B where 借书证号=14002) t2 on t1.num=t2.num
回复
happydreamer 2003-01-10
select 书名 from B where 登录号 not in (select distinct 登录号 from R-B)

select 借书证号 from R-B where 登陆号 in
( select 登陆号 from R-B where 借书证号='14002')
回复
DainelLee 2003-01-10
2.不懂你的意思,你看这样可否
select * from r-b where 借书证号 in (select 借书证号 from r-b where 登记号='14002')
回复
DainelLee 2003-01-10
1.
select * from b where 登陆号 not in (select distinct 登陆号 from r-b)
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告