-- 1、查询“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的学生编号、学生名称、图书编号、图书名称、借出日期;
SELECT
a.stuID,
a.stuName,
c.BID,
c.author,
b.T_time
FROM
student a
LEFT JOIN borrow b ON a.stuID = b.stuID
LEFT JOIN book c ON c.BID = b.BID
WHERE
b.T_time BETWEEN '2007-12-15' AND '2008-1-8'
-- 2、查询所有借过图书的学生编号、学生名称、专业;
SELECT
a.stuID,
a.stuName,
a.major,
b.T_time
FROM
student a
LEFT JOIN borrow b ON a.stuID = b.stuID
WHERE
b.T_time IS NOT NULL
-- 3、查询没有借过图书的学生编号、学生名称、专业;
SELECT
a.stuID,
a.stuName,
a.major,
b.T_time
FROM
student a
LEFT JOIN borrow b ON a.stuID = b.stuID
WHERE
b.T_time IS NULL
-- 4、查询借过作者为“安意如”的图书的学生姓名、图书名称、借出日期、归还日期;
SELECT
a.stuName,
c.author,
b.T_time,
b.B_time
FROM
student a
LEFT JOIN borrow b ON a.stuID = b.stuID
LEFT JOIN book c ON c.BID = b.BID
WHERE c.author = '安意如'
-- 5、查询借过书但有书未归还的学生编号、学生名称、图书编号、图书名称、借出日期
SELECT
a.stuID,
a.stuName,
c.BID,
c.author,
b.T_time,
b.B_time
FROM
student a
LEFT JOIN borrow b ON a.stuID = b.stuID
LEFT JOIN book c ON c.BID = b.BID
WHERE
b.T_time IS NOT NULL
AND b.B_time IS NULL
-- 6、查询目前借书但未归还图书的学生名称及未还图书数量;
SELECT
a.stuName,
count( * ) AS number
FROM
student a
LEFT JOIN borrow b ON a.stuID = b.stuID
LEFT JOIN book c ON c.BID = b.BID
WHERE
b.T_time IS NOT NULL
AND b.B_time IS NULL
GROUP BY
a.stuID
查询目前借书但未归还图书的学生名称及未还图书数量
最新推荐文章于 2024-09-20 19:42:13 发布