You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL JOIN分组查询:获取包含空文件夹的文件统计数

解决空文件夹未显示的问题

嘿,这个问题我太熟了!你当前的查询用的是隐式内连接(用逗号分隔两张表),这种连接方式只会返回两边都有匹配数据的行——也就是说,如果某个文件夹里没有符合条件的文件,它就会被直接过滤掉,这就是空文件夹没出现在结果里的原因。

要搞定这个,咱们得换成左连接(LEFT JOIN),它会保留左边表(也就是folders)里所有符合条件的记录,哪怕右边表(files)没有对应的匹配项。同时还要注意过滤条件的位置,不然左连接会变相变成内连接。

给你调整后的查询语句:

SELECT 
    folders.id, 
    folders.name, 
    COUNT(files.id) AS kount
FROM folders
LEFT JOIN files 
    ON files.folder_id = folders.id 
    AND files.ignored = 0 
    AND files.site_id = 111
WHERE 
    folders.site_id = 111 
    AND folders.ignored = 0
GROUP BY folders.id, folders.name;

关键改动说明:

  • LEFT JOIN替代隐式内连接:确保所有满足WHERE条件的文件夹都能被返回,不管有没有对应文件
  • 把files的过滤条件放到ON子句:这样只会连接那些未被忽略、属于对应站点的文件,不会因为没有匹配文件就过滤掉文件夹
  • COUNT(files.id):当文件夹没有对应文件时,files.id会是NULL,COUNT会自动忽略NULL值,返回0,正好符合空文件夹的文件数统计需求(别用COUNT(*),不然空文件夹会被统计成1)

这样修改后,你就能看到所有未被忽略的文件夹,包括那些没有文件的空文件夹啦~

内容的提问来源于stack exchange,提问作者zzmaster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:59:54