一.多表连接查询:
- 内连接:相当于查询A和B交集部分的数据
- 外连接:
左外连接:查询左表所有数据,以及两表相交的部分数据
右外连接:查询右表所有数据,以及两表相交的部分数据
自连接:当前表与自身的连接查询,必须使用表别名
二.内连接
内连接查询语法 select 字段列表 from 表1,表2 where 条件……; 或
select 字段列表 from 表1 [inner] join 表2 on 连接条件……;
三.简单实例
图书管理数据库有读者reader图书book借阅数据表 读者表reader有读者证号dzzh、姓名xm、性别xb、身份sf、电话号码dhhm字段 图书表book有条形码txm、书名sm、分类号flh,作者zz,出版社cbs,出版日期cbrq,售价sj,典藏类别dclb,在库zk,币种bz字段 借阅表borrow有借阅编号jyid、读者证号dzzh、条形码txm、借阅日期jyrq、还书日期hsrq五个字段。 当读者借阅图书时,在借阅数据表中添加一条记录,还书日期设置为NULL,图书的在库zk字段被设置为0. 当读者归还图书时,将其对应借阅记录的还书日期设置为当天的日期,并修改图书的在库zk字段为1.
问题: 1.根据读者(reader)和借阅(borrow)数据表,查询王颖珊的借阅记录,包括条形码txm、借阅日期jyrq、还书日期hsrq
2.根据图书(book)和借阅(borrow)数据表,查询李白全集被借阅的情况:包括读者证号dzzh、借阅日期jyrq、还书日期hsrq
3.根据读者(reader)、图书(book)和借阅(borrow)数据表查询没有被归还的借阅信息:包括读者证号dzzh、姓名xm、电话dhhm、条形码txm、书名sm、借阅日期jyrq
1.
select txm,jyrq,hrsq from borrow,reader where reader.dzzh=borrow.dzzh and reader.xm='王颖珊';
2.
select dzzh,jyrq,hsrq from borrow,book where borrow.txm=book.txm and book.sm='李白全集';
3.
select reader.dzzh,xm,dhhm,book.txm,sm,borrow.jyrq from reader,book,borrow
where reader.dzzh=borrow.dzzh and book.txm=borrow.txm and isnull(hsrq);