设有如下三个基本表,表结构如下: BORROWER(借书证号,姓名,系名,班级) LOANS(借书证号,图书登记号,借书日期) BOOKS(索书号,书名,作者,图书登记号,出版社,价格) 用SQL语言实现以下要求:(2)查询出借书和李明同学所借图书中任意一本相同的学生的姓名、系名、书名和借书日期。
时间: 2023-12-14 22:03:53 浏览: 74
利用SQL语言进行多表联合查询
可以使用以下 SQL 语句实现该要求:
```
SELECT DISTINCT b2.姓名, b2.系名, bk.书名, l.借书日期
FROM BORROWER b1
JOIN LOANS l ON b1.借书证号 = l.借书证号
JOIN BOOKS bk ON l.图书登记号 = bk.图书登记号
JOIN LOANS l2 ON bk.图书登记号 = l2.图书登记号
JOIN BORROWER b2 ON l2.借书证号 = b2.借书证号
WHERE b1.姓名 = '李明'
AND b2.姓名 <> '李明'
```
说明:
首先使用 `JOIN` 将借书证号、图书登记号、索书号三个表连接起来,得到借书证号、姓名、系名、书名和借书日期的信息。
然后再次使用 `JOIN` 将借书证号、图书登记号、索书号三个表连接起来,得到借同一本书的借书证号。
最后再次使用 `JOIN` 将借书证号和借书人信息表连接起来,得到借同一本书的借书人的姓名和系名。
最后在 `WHERE` 子句中筛选出借书人为李明的记录,并排除掉借书人为李明的记录,避免重复。
阅读全文