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

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

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

1 找出未被借阅的图书名;
2 找出这样一些借书证号,它们所登记的登陆号包含了证号14002所登记全部图书的登陆号。
...全文
57 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
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)

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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