数据库,BOOK,
表1:stuent ; 字段 stuID (学生编号), stuName(姓名), major(专业)
表2:book ;字段 Bid (图书编号) title (书名),autor(作者)
表3:borrow:字段borrowID(结束编号),stuID(学生编号),BID(图书编号), T_time (结束日期),B_time(还书日期)
题目:
1,查询所有借过书的学生编号,姓名,专业,?
2,借书但是未归还的学生姓名及该生未归还书的图书数量?
3,比如书名是《天龙八部》,请分别查询借过它的人的姓名,借书日期,看了多少天,要考虑若某人借了但是没还,则在看了多久一栏填上(尚未归还)
可以每个题目有多种查询方案,最好有,
请详细分析你的思路,以及哪一种比较优越,在查询性能方面或其他方面比较,
另外请兄台谨慎提交你的答案,不要误人子弟!
请装的走远点,装B遭雷劈,害人害己!
有劳各位解答!多谢!
1,查询所有借过书的学生编号,姓名,专业,?
SELECt DISTINCT borrow.stuid, student.major
FROM borrow LEFT OUTER JOIN
student ON borrow.stuid = student.stuID
2,借书但是未归还的学生姓名及该生未归还书的图书数量?
SELECt student.stuName, COUNT(1) AS Expr1
FROM borrow LEFT OUTER JOIN
student ON student.stuID = borrow.stuid
WHERe (borrow.b_time IS NULL)
GROUP BY student.stuName
3,比如书名是《天龙八部》,请分别查询借过它的人的姓名,借书日期,看了多少天,要考虑若某人借了但是没还,则在看了多久一栏填上(尚未归还)
SELECt student.stuName, borrow.t_time, CASE WHEN borrow.b_time IS NULL THEN '尚未归还' ELSE cast(datediff(day,t_time,b_time) as varchar) END AS Expr1
FROM borrow LEFT OUTER JOIN
student ON student.stuID = borrow.stuid LEFT OUTER JOIN
book ON borrow.bid = book.Bid
WHERe (book.title = '天龙八部')
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息