如何解决在mySQL查询中选择folders_name,然后选择每个文件夹中的文件COUNT
它选择特定的用户的folder_names
,
但是我还希望每个文件夹中有COUNT()
个文件。
此代码可以,但是COUNT()
始终返回文件夹数(在我的情况下为6)。
SELECT fo.*,COUNT(f.file_id)
FROM folders fo
LEFT JOIN files f ON f.folder_id = fo.folder_id
WHERE fo.user_id = :user_id
GROUP BY fo.folder_id
ORDER BY fo.folder_name ASC
现在它可以工作了! 感谢Bill Karwin !!
表格
folders -> folder_id,user_id,folder_name,folder_icon_id,folder_description.
files -> file_id,folder_id,filename,file_icon,file_description.
谢谢!
解决方法
您的加入子句应为folder_id
。好像user
有5个文件,如果您基于user_id
加入,则所有具有相同user_id
的文件夹都将显示相同的计数。
SELECT fo.*,COUNT(f.file_id)
FROM folders fo
LEFT JOIN files f ON f.folder_id = fo.folder_id
WHERE fo.user_id = :user_id
GROUP BY fo.folder_id
ORDER BY fo.folder_name ASC
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。