24小时热门版块排行榜    

查看: 3285  |  回复: 23

淡淡0987

铜虫 (初入文坛)

[求助] 一个简单的SQL查询 已有1人参与

1. 用SQL语言实现下述功能。
设有一个简单的图书管理数据库,包含如下三个关系表:
图书关系表:Book(BNO, Title, Author, Publisher, Price),
其中BNO, Title, Author, Publisher, Price分别表示图书的总编号、书名、
作者、出版单位和单价;
读者关系表:Reader(LNO,  Name, Unit),
其中LNO,  Name, Unit分别表示读者的借书证号、姓名和所在单位;
借阅关系表:Loan(LNO, BNO, Date)
  其中LNO, BNO, Date分别表示借阅图书的借书证号、所借图书的总编号和借书日期。
查询至少借阅了0287号图书和0398号图书的读者号。
回复此楼
且行且珍惜
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

淡淡0987

铜虫 (初入文坛)

引用回帖:
2楼: Originally posted by hx_zm at 2013-10-20 16:27:58
select lno from Loan where  BNO = '0287'  and lno in (select lno from Loan where  BNO = '0398' )

这个不对,至少借阅,不是只借阅
且行且珍惜
3楼2013-10-20 22:07:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

adong76

禁虫 (正式写手)

感谢参与,应助指数 +1
本帖内容被屏蔽

5楼2013-10-21 10:33:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

hx_zm

铁杆木虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
select lno from Loan where  BNO = '0287'  and lno in (select lno from Loan where  BNO = '0398' )
2楼2013-10-20 16:27:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hx_zm

铁杆木虫 (著名写手)

引用回帖:
3楼: Originally posted by 淡淡0987 at 2013-10-20 22:07:47
这个不对,至少借阅,不是只借阅...

逻辑都搞不清
4楼2013-10-21 08:34:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

淡淡0987

铜虫 (初入文坛)

引用回帖:
5楼: Originally posted by adong76 at 2013-10-21 10:33:02
两种方法:
1. 采用子查询:(思路为在内部子查询结果基础上,按照读者号分组,如果某个组中成员数量为2,就代表该读者借阅过那两本书)
select lno from
(select distinct bno, lno from loan
where bno=’0 ...

子查询里where语句感觉不对,自身连接限制最后得出结果只有借阅0287和0398的读者号
且行且珍惜
6楼2013-10-21 15:33:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

adong76

禁虫 (正式写手)

本帖内容被屏蔽

7楼2013-10-21 15:42:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

淡淡0987

铜虫 (初入文坛)

引用回帖:
7楼: Originally posted by adong76 at 2013-10-21 15:42:50
自连接的确是有问题,达不到你的要求,请忽略它。
子查询内部虽然采用的是“或者”运算符,得到借阅其中一本图书的读者,但经过主查询中的分组和having条件筛选,保留下来的都是同时借过两本书的读者了,感觉这个 ...

你会用exists吗,,我没看懂,感觉这个可以解决,就是不会用
且行且珍惜
8楼2013-10-21 18:10:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

稻草菲菲

新虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
M=select * FROM LOAN WHERE BNO=0287
N =select * from loan where bno=0369
select * from M inner join N on m.lno=n.lno

[ 发自手机版 http://muchong.com/3g ]
9楼2013-10-21 19:48:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

adong76

禁虫 (正式写手)

本帖内容被屏蔽

10楼2013-10-21 19:54:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 淡淡0987 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 时间戳又变了8-15 +12 archvillain 2026-08-15 23/1150 2026-08-15 20:47 by foyo404
[基金申请] filecode=后面第一个是大写字母 +6 wangze12014 2026-08-14 7/350 2026-08-15 20:12 by gltch
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +8 majunge000 2026-08-11 10/500 2026-08-15 18:55 by Equinoxhua
[基金申请] filecode +8 cratir 2026-08-14 12/600 2026-08-15 18:08 by zyfgau
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +7 Ldrop2023 2026-08-13 7/350 2026-08-15 15:57 by mzhh2000
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 22/1100 2026-08-14 23:45 by Noways
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +23 Lanmanbaby 2026-08-09 37/1850 2026-08-14 13:40 by Equinoxhua
[硕博家园] 读博的好处 +4 lnee 2026-08-11 4/200 2026-08-14 10:20 by ahsoarli
[基金申请] FileCode能看出啥? +10 要乐观耀哥 2026-08-10 32/1600 2026-08-14 09:37 by 要乐观耀哥
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 综述论文作为代表作会不会影响评审专家的印象分? +11 yufeiwaner 2026-08-09 13/650 2026-08-12 08:17 by yufeiwaner
[基金申请] 帮忙看看fileCode +7 wwncly 2026-08-10 13/650 2026-08-11 19:36 by 冰心玉壶晴
[基金申请] 为什么网上很多人说本周 12号出结果 +6 瞬息宇宙 2026-08-10 7/350 2026-08-11 19:25 by Tide man
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
信息提示
请填处理意见