2011-04-13 72 views
0

MySQL查詢尋找最簽出書

BOOK_COPIES (Book_ISBN [pk,fk], Branch_ID [pk,fk], Num_Copies) 
BOOK_LOANS (Book_ISBN [pk,fk], Branch_ID [pk,fk],Card_Num [pk,fk], Date_Out,Date_Due)       
BORROWER (Card_Num [pk], Name, Address, Phone) 

問題

名單誰簽出書大部分借款人的身份證號碼和姓名。

解決方案:

select br.cardnum,br.name from borrower br, bookloans bl 
where br.card_num=bl.card_num 
group by br.cardnum,br.name 
having count(bl.book_isbn)>=all(
    select count(*) from bookloans bl 
    group by bl.card_num 
); 

u能請幫我整理查詢。

+1

請處理這個問題的格式。謝謝。 – bernie 2011-04-13 01:37:44

+0

這是功課嗎?考慮以這種方式標記它。 「完成」查詢意味着什麼? – Khez 2011-04-13 01:53:08

回答

0

好像你正在你得太多家庭作業:

select BOOK_LOANS.Card_Num, Name, COUNT(Book_ISBN) AS BorrowedCount 
from BOOK_LOANS 
left join BORROWER on 
group by BOOK_LOANS.Card_Num 
order by BorrowedCout desc 
limit 1 

不需要嵌套查詢。