问题描述
它选择特定的用户的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