SQL整理七

本文介绍了一种通过SQL查询来找出图书借阅中逾期超过两本以上的读者信息的方法。使用了两个表,分别是书籍信息表和图书借阅信息表,通过对这两个表的数据进行联结查询及条件筛选,实现了对逾期借阅情况的有效分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



图书信息表:books
+------+---------+
bookid bookname |
| 1 a |
| 2 b |
| 3 v |
| 4 d |
| 5 f |
| 6 g |
| 7 h |
| 8 j |
| 9 k |
| 10 l |
| 11 r |
| 12 t |
+------+---------+
SQL:
+-----------------------------------------+
DROP TABLE IF EXISTS `books`;
CREATE TABLE `books` (
`bookid` int(11) NOT NULL default '0',
`bookname` varchar(12) default NULL,
PRIMARY KEY (`bookid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `books` VALUES (1,'a');
INSERT INTO `books` VALUES (2,'b');
INSERT INTO `books` VALUES (3,'v');
INSERT INTO `books` VALUES (4,'d');
INSERT INTO `books` VALUES (5,'f');
INSERT INTO `books` VALUES (6,'g');
INSERT INTO `books` VALUES (7,'h');
INSERT INTO `books` VALUES (8,'j');
INSERT INTO `books` VALUES (9,'k');
INSERT INTO `books` VALUES (10,'l');
INSERT INTO `books` VALUES (11,'r');
INSERT INTO `books` VALUES (12,'t');
+-----------------------------------------+

图书借阅信息表:checkout
+--------------+-------+----------+
|Id readername bookid checktime|
| 1 zhang 12 23 |
| 2 li 9 30 |
| 3 zhang 7 2 |
| 4 hu 11 52 |
| 5 li 10 12 |
| 6 zhang 2 30 |
| 7 zhang 3 45 |
| 8 zhang 4 12 |
| 9 wang 6 30 |
| 10 li 8 114 |
| 11 li 4 50 |
+--------------+-------+----------+
SQL:
+------------------------------------------------+
DROP TABLE IF EXISTS `checkout`;
CREATE TABLE `checkout` (
`Id` int(11) NOT NULL auto_increment,
`readername` varchar(12) default NULL,
`bookid` int(11) default NULL,
`checktime` int(11) default NULL,
PRIMARY KEY (`Id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `checkout` VALUES (1,'zhang',12,23);
INSERT INTO `checkout` VALUES (2,'li',9,30);
INSERT INTO `checkout` VALUES (3,'zhang',7,2);
INSERT INTO `checkout` VALUES (4,'hu',11,52);
INSERT INTO `checkout` VALUES (5,'li',10,12);
INSERT INTO `checkout` VALUES (6,'zhang',2,30);
INSERT INTO `checkout` VALUES (7,'zhang',3,45);
INSERT INTO `checkout` VALUES (8,'zhang',4,12);
INSERT INTO `checkout` VALUES (9,'wang',6,30);
INSERT INTO `checkout` VALUES (10,'li',8,114);
INSERT INTO `checkout` VALUES (11,'li',4,50);
+------------------------------------------------+
要求:
1.每个人借阅期限是30天。求出过期书大于2本的读者的名字,书名和已借阅时间。
+---------------------------------------------+
|SELECT b.readername, a.bookname, b.checktime |
|FROM books a, checkout b, ( |
| SELECT readername, count( readername ) AS ct|
| FROM checkout |
| WHERE checktime >30 |
| GROUP BY readername |
| HAVING ct >=2 |
|)c |
|WHERE a.bookid = b.bookid |
|AND c.readername = b.readername |
|AND b.checktime >30 |
+---------------------------------------------+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值