Php sql查询:如何使用标记表筛选父标记和子标记?

Php sql查询:如何使用标记表筛选父标记和子标记?,php,mysql,sql,parent-child,tagging,Php,Mysql,Sql,Parent Child,Tagging,在得到正确答案后,我还有一个问题-我必须进一步过滤行,这就是我必须确保标记必须标记到页面 这是我的root\u mm\u taged\u pages表 tag id pg_id 3 11 5 11 6 11 18 12 24 13 26 13 3 14 所以我想返回这个结果 ParentID ParentName TotalChildren TotalTagged 3

在得到正确答案后,我还有一个问题-我必须进一步过滤行,这就是我必须确保标记必须标记到页面

这是我的
root\u mm\u taged\u pages表

tag id  pg_id 
3       11  
5       11  
6       11  
18      12  
24      13  
26      13
3       14
所以我想返回这个结果

ParentID    ParentName  TotalChildren   TotalTagged
3           Tagname-1   2               2
5           tagname-2   2               1
6           tagname-3   1               1
18          tagname-10  0               1
24          tagname-13  0               1
26          tagname-14  0               1
我尝试了这个查询,但得到了一个错误-
#1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解第5行“COUNT(taged.pg_id)AS totaltaged FROM root_tags AS parents LEFT OUTER JOI”的正确语法

SELECT 
    parents.tag_id AS ParentID,
    parents.tag_name AS ParentName,
    COUNT(childs.tag_id) AS TotalChildren
    COUNT( tagged.pg_id ) AS TotalTagged

FROM root_tags AS parents
    LEFT OUTER JOIN root_tags AS childs
    ON parents.tag_id = childs.parent_id

    LEFT OUTER JOIN root_mm_tagged_pages AS tagged
    ON tagged.tag_id = parents.tag_id

WHERE parents.parent_id IS NULL
GROUP BY parents.tag_id, parents.tag_name
ORDER BY parents.tag_id

如何修复它并进一步过滤结果?

您在
TotalChildren
别名后缺少逗号

SELECT 
    parents.tag_id AS ParentID,
    parents.tag_name AS ParentName,
    COUNT(childs.tag_id) AS TotalChildren , --You missed the comma here
    COUNT( tagged.pg_id ) AS TotalTagged
FROM root_tags AS parents
    LEFT OUTER JOIN root_tags AS childs
    ON parents.tag_id = childs.parent_id

    LEFT OUTER JOIN root_mm_tagged_pages AS tagged
    ON tagged.tag_id = parents.tag_id

WHERE parents.parent_id IS NULL
GROUP BY parents.tag_id, parents.tag_name
ORDER BY parents.tag_id

@劳蒂亚姆科克:在你来这里的一年里,你已经发布了212个问题——通常一天就有几个问题——其中大部分问题都是关于为你找到像这样愚蠢的拼写错误。在求助于他人之前,我是否可以建议增加调试代码的时间?这东西很琐碎!:)