当前位置:  开发笔记 > 后端 > 正文

结合连接和计数的MySQL语句?

如何解决《结合连接和计数的MySQL语句?》经验,为你挑选了2个好方法。

我有一个'文件夹'表.我想返回userId为16的所有记录.

SELECT * FROM `folders` WHERE userId = 16;

我有一张'文件'表.对于上面返回的每个"文件夹",我想返回该"文件夹"中的"文件"计数.

SELECT COUNT(*) as "Files" FROM files WHERE Folder = n;

我如何结合这些?我迷路了.谢谢!



1> jennykwan..:
SELECT  fol.*
 ,      (       SELECT  COUNT(*)
                FROM    files           fil
                WHERE   fil.Folder      = fol.Folder
        )       AS      "Files"
FROM    folders         fol
WHERE   fol.userId      = 16

它被称为相关子查询.

http://dev.mysql.com/doc/refman/5.1/en/correlated-subqueries.html



2> dusoft..:

您可能需要使用GROUP BY并按ID或其分组:

SELECT 
    folders.*,
    COUNT(files.*) as filetotal 
FROM folders 
    LEFT JOIN files ON folders.ID=files.folderID 
WHERE userId = 16 
GROUP BY folders.ID


他在原始查询中有*,我不知道他的桌子是什么样的,所以停止拖钓并使用你的智慧来创造一些东西.
推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有