我会直言不讳。我的数据库是这样的
每本书都存储在reading_materials中,每本书都有自己独特的入藏号,无论它有多少副本(忽略字段名称'Copies')。当学生或人员借书时,数据被插入借阅表。我现在的问题是,如何在借阅桌上获得借阅最多的书籍。
有人可以帮我吗?
我的数据库是这样的:
Trans_ID PRIMARY KEY
A_Accession_No FOREIGN KEY references reading_materials(Accession_No)
B_Student_No
DateBorrowed
DateReturned
Penalty
Accession_No PRIMARY KEY
Date_acquired
Title
Copyright
Available
B_Accesion_No FOREIGN KEY references reading_materials('Accession_No')
Author_ID FOREIGN KEY references author(Author_ID)
Author_ID PRIMARY KEY
Name
*我为我糟糕的英语道歉,如果你有些人不会发现这不太清楚
答案 0 :(得分:0)
SELECT *,COUNT(SELECT Trans_ID WHERE A_Accession_NO = Accession_NO)AS BorrowedCount FROM reading_materials ORDER BY BorrowedCount DESC
该查询应该按降序为您提供借阅最多的书籍,并告诉您每个借书的次数。
答案 1 :(得分:0)
试试这个:
SELECT a.Accession_No, a.Title, COUNT(b.a_accession_NO) as NoOfTimesBorrowed
FROM Reading_Materials a LEFT JOIN borrow b ON a.accession_No = b.a_accession_NO
GROUP BY a.Accession_No
ORDER BY NoOfTimesBorrowed DESC
LIMIT 5
这将选择TOP 5
并从借阅最多的书中排序。