MySQL多表JOIN查询执行后仅返回一行结果问题求助
问题根因
- 你使用了聚合函数
COUNT(loanId)但未添加GROUP BY子句指定分组规则,聚合函数默认会将所有符合WHERE条件的行聚合为1行统计结果,这就是仅返回一行的核心原因。 - 你的需求是按书籍维度统计未归还借阅次数,需要明确按书籍名称
title分组,才能实现每本未归还书籍对应一条借阅次数统计结果。
修正后的SQL语句
use library; Select title, count(loanId) as 'Number of loans' From book Join bookCopy ON bookCopy.isbn = book.isbn Join loan ON bookCopy.copyId = loan.copyId Where dateBack IS NULL Group By title Order By title;
补充说明
如果库中存在书名相同但ISBN不同的书籍,建议同时按ISBN和书名分组,避免不同书籍的借阅数据被合并统计,只需将上述
GROUP BY子句调整为GROUP BY book.isbn, title即可。
内容的提问来源于stack exchange,提问作者RespectfulStudent
相关产品推荐
相关产品推荐

