Mysql SQL查找最受欢迎的书籍
我在桌子上有书Mysql SQL查找最受欢迎的书籍,mysql,sql,database,select,subquery,Mysql,Sql,Database,Select,Subquery,我在桌子上有书 BookID BookName 1 BookA 2 BookB 3 BookC 成员表 MemberID MemberName 1 MemberA 2 MemberB 借书台 MemberID BookID 1 1 1 2 2 1 2 2 我想找出Memeber A写的五本畅销书 我尝试了以下查询 SELECT
BookID BookName
1 BookA
2 BookB
3 BookC
成员表
MemberID MemberName
1 MemberA
2 MemberB
借书台
MemberID BookID
1 1
1 2
2 1
2 2
我想找出Memeber A写的五本畅销书
我尝试了以下查询
SELECT TOP (5) Book.BookTitle, COUNT(*) AS Count, Member_1.MemberName
FROM Book INNER JOIN
Borrow ON Book.BookID = Borrow.BookID INNER JOIN
Member ON Borrow.MemberID = Member.MemberID INNER JOIN
Member AS Member_1 ON Borrow.MemberID = Member_1.MemberID
where Member.MemberName='A'
GROUP BY Book.BookTitle, Member_1.MemberName
ORDER BY Count DESC
但这并没有给我实际的结果
如果您有任何建议,我们将不胜感激。我认为您的加入太多了:
SELECT TOP (5) b.BookTitle, COUNT(*) AS Count, m.MemberName
FROM Book b INNER JOIN
Borrow bo
ON bo.BookID = b.BookID INNER JOIN
Member m
ON bo.MemberID = m.MemberID
WHERE m.MemberName = 'A'
GROUP BY b.BookTitle, m.MemberName
ORDER BY Count DESC;
注意:此语法通常与SQL Server关联,在MySQL中不起作用。在MySQL中,您将使用
LIMIT 5
而不是SELECT TOP(5)
您将问题标记为MySQL,但代码不会在MySQL中运行。我很困惑。结果和你期望的有什么不同?你为什么要加入借款会员两次?你怎么称呼一位会员的畅销书?你的意思是他们不止一次地借同一本书,你根据会员借书的频率对这些书进行排名?