我有以下表格
CREATE TABLE `files` (
`fileid` int(11) NOT NULL AUTO_INCREMENT,
`filename` varchar(255) NOT NULL,
`filesize` int(11) NOT NULL,
`folder` int(11) NOT NULL,
PRIMARY KEY (`fileid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `folders` (
`directoryid` int(11) NOT NULL AUTO_INCREMENT,
`directoryname` varchar(255) NOT NULL,
PRIMARY KEY (`directoryid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
如何获取所有文件夹的列表及其保存的文件数,包括没有(零)文件的文件夹?不得考虑递归。
找到它
select folders.directoryid, folders.directoryname, count(files.fileid) as no_files
from folders
left join files on files.folder = folders.directoryid
group by folders.directoryid, folders.directoryname
我希望它会帮助别人。
答案 0 :(得分:1)
select folders.directoryname,
count(files.fileid)
from folders left outer join
files on folders.directoryid = files.folder
group by folders.directoryid
应该这样做
答案 1 :(得分:0)
您可以尝试类似
的内容SELECT f.directoryid,
COUNT(fs.fileid) CountOfFiles
FROM folders f LEFT JOIN
files fs ON f.DirectoryID = fs.folder
GROUP BY f.directoryid
答案 2 :(得分:0)
SELECT directoryname, COUNT(files.fileid) AS filecount
FROM folders
LEFT JOIN files ON files.folder = folders.directoryid
GROUP BY directoryid
ORDER BY directoryname