2014-04-03 49 views
0

我有三個表:Book持有idtitle等。
member持有idname等...
loan持有member_idbook_idreturnDate等。實現的SQL加入

我想寫一個查詢,如果他們已借出3本或三本書,我會將所有成員詳細信息返回給我。到目前爲止,我有:

SELECT * FROM member m 
JOIN member_loans_book mlb ON m.id = mlb.Member_id 
    HAVING count(mlb.Book_id) <= 3 

它編譯但沒有返回什麼,我錯了嗎?
任何指針讚賞。

+0

添加GROUP BY子句m.id,並考慮在哪裏,而不是 – RobP

+1

嘗試使用'左JOIN'因爲有可能是誰的人甚至沒有借給一本書。 – user2989408

+0

只是在用戶評論..最後評論我已經填充它自己,所以我知道它應該返回的東西(如果我的發言是正確的,我懷疑),但我明白你的意思是在沒有任何事情發生,所以歡呼 – HammockKing

回答

0

sqlFiddle

SELECT m.MemberId, m.Name, COUNT(*) 
FROM Member m 
JOIN Loan l ON m.MemberId = l.MemberId 
GROUP BY m.MemberId, m.Name 
HAVING COUNT(*) <= 3 
+0

這就是它, 非常感謝 – HammockKing