एसक्यूएल सर्वात लोकप्रिय पुस्तके शोधत आहे

माझ्याकडे पुस्तकांचे टेबल आहे

BookID BookName
 1       BookA
 2       BookB
 3       BookC

सदस्य टेबल

MemberID MemberName
 1          MemberA
 2          MemberB

टेबल उधार घ्या

MemberID BookID
 1         1
 1         2
 2         1
 2         2

मला सदस्य ए चे पाच लोकप्रिय पुस्तक शोधायचे आहे

मी खालील क्वेरी करण्याचा प्रयत्न केला

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

पण हे मला प्रत्यक्ष परिणाम देत नाही.

कोणत्याही सूचनांचे कौतुक केले जाईल.


person Owais Ahmed    schedule 19.09.2020    source स्रोत
comment
तुम्ही तुमचा प्रश्न MySQL टॅग केला आहे, परंतु कोड MySQL मध्ये चालणार नाही. मी गोंधळलो आहे.   -  person Gordon Linoff    schedule 19.09.2020
comment
तुमच्या अपेक्षेपेक्षा निकाल कसा वेगळा आहे? आणि तुम्ही कर्ज घेणाऱ्या सदस्यात दोनदा का सामील होता? आणि सदस्याच्या लोकप्रिय पुस्तकाला तुम्ही काय म्हणता? तुम्हाला असे म्हणायचे आहे की ते एकच पुस्तक एकापेक्षा जास्त वेळा घेतात आणि सदस्याने किती वेळा ती पुस्तके घेतली यानुसार तुम्ही पुस्तकांची क्रमवारी लावता?   -  person Thorsten Kettner    schedule 19.09.2020


उत्तरे (1)


मला वाटते की तुमच्याकडे बरेच सामील आहेत:

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 सर्व्हरशी संबंधित असते आणि MySQL मध्ये कार्य करत नाही. MySQL मध्ये, तुम्ही SELECT TOP (5) ऐवजी LIMIT 5 वापराल.

person Gordon Linoff    schedule 19.09.2020