【问题标题】:sql query: how to filter parent and children tags with a tagged table?sql 查询:如何过滤带有标签的表的父子标签?
【发布时间】:2011-08-04 21:08:05
【问题描述】:

post 得到正确答案后,我还有一个问题 - 我必须进一步过滤该行,即我必须确保必须将标签标记到页面。

这是我的root_mm_tagged_pages table

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 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'COUNT( tagged.pg_id ) AS TotalTagged FROM root_tags AS parents LEFT OUTER JOI' at line 5

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

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

【问题讨论】:

    标签: php mysql sql parent-child tagging


    【解决方案1】:

    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
    

    【讨论】:

    • @lauthiamkok:在你来这里的 1 年里,你已经发布了 212 个问题——通常是一天几个问题——其中大部分只是为你寻找像这样愚蠢的错别字。在求助于他人之前,我可以建议增加调试代码的时间吗?这东西很琐碎! :)
    猜你喜欢
    • 2017-11-06
    • 1970-01-01
    • 2018-11-01
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-03
    相关资源
    最近更新 更多