在mySQL查询中选择folders_name,然后选择每个文件夹中的文件COUNT

问题描述

我的MysqL代码如下:

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...