是否是很简单?
但是,数据库是如许式的
疏忽续借操纵,只关注借书、还书操纵。
就是说统一张表,统一本书,既能够存借书,也能够存送还,而且统一本书还可能借出或许送还屡次。
其他属性好说,比较贫苦的就是这个送还时候,统一本书,紧跟着借书操纵的还书操纵,才是它的送还时候。
解决方案是如许的:
把借出操纵记为A表,送还操纵记为B表:个中A表22行,B表19行
衔接前提应该为藏书的编号和读者的id ,衔接的效果为58行。因为数据中,统一本书名有好几个编号,我把书名给去掉了,衔接的效果是如许的
能够看出假如上的纪录框图框出来的就是题目的地点!框图框出来的都是统一条借书纪录,它跟每一条的还书纪录衔接。从纪录里能够看出,我让这个人借了六次统一本书,做了六次的衔接!
以下划定规矩能够协助我们查询出准确的效果
1)统一组借还操纵,借操纵一定在还操纵之前
2)排撤除借操纵时候>还操纵的时候的纪录以后,最早的还书时候,就是这个人,这本书的还书时候
终究效果是如许的
终究SQL代码是如许的
select A.*,min(B.操纵时候) 还书时候 from aleft join bon a.书本的典藏编号 = b.书本的典藏编号 and a.读者id = b.读者id and a.操纵时候<b.操纵时候group by a.书本的典藏编号,a.操纵称号,a.操纵时候,a.读者id
用的是左外衔接,未送还的还书时候固然就是NULL啦。如许,其他的子查询、团结、分页都不是题目了。
以上就是一个关于数据库的团结查询的实例的细致内容,更多请关注ki4网别的相干文章!