【问题标题】:Order using count from another table使用另一个表中的计数进行排序
【发布时间】:2015-07-28 15:32:16
【问题描述】:

您好,我需要使用另一个表中的计数来订购。我找到了这个很好的例子,我用它作为我需要的查询的模型。 SQL - How To Order Using Count From Another Table

我用于查询的模型是:

SELECT bloggers.*, COUNT(post_id) AS post_count
    FROM bloggers LEFT JOIN blogger_posts 
    ON bloggers.blogger_id = blogger_posts.blogger_id
    GROUP BY bloggers.blogger_id
    ORDER BY post_count

但我的语法有问题,我想,我试图用计算另一个表的查询替换下一个查询......但我无法做到。原始查询:

$res3=$db->execute_query("select id,scode,sname from ".TABLE_PREFIX."states where ccode=? order by sname asc",array($country));

试图用这个查询替换..

 $res3=$db->execute_query("select ".TABLE_PREFIX."states.* , COUNT(".TABLE_PREFIX."items.state) AS state_count FROM ".TABLE_PREFIX."states LEFT JOIN ".TABLE_PREFIX."items ON ".TABLE_PREFIX."states.id = ".TABLE_PREFIX."items.state GROUP BY ".TABLE_PREFIX."states.id  ORDER BY state_count DESC",array($country));

【问题讨论】:

    标签: mysql


    【解决方案1】:

    试试这个:

    $res3=$db->execute_query("select a.* , COUNT(b.state) AS state_count FROM states a 
    LEFT JOIN items b ON a.id = b.state 
    GROUP BY a.id 
    ORDER BY state_count DESC",array($country));
    

    【讨论】:

    • 谢谢,它不工作,我得到同样的错误,一个奇怪的错误(有你和我的查询)已经发送的标题,但它没有意义......当我使用原始查询,运行流畅,漂亮。 ...也许我们必须插入“where ccode=?”
    猜你喜欢
    • 1970-01-01
    • 2011-06-14
    • 2015-04-05
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多