Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql count()为零时使用case?_Mysql - Fatal编程技术网

Mysql count()为零时使用case?

Mysql count()为零时使用case?,mysql,Mysql,我试图得到一个按评论数排序的文章列表。我已经做了类似的过程,以获得一份按Atile的选票排序的列表,但我不知道为什么现在我不能让它工作 SELECT a.*,cc.params as catparams,cc.title as cattitle,u.username, CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug, CASE WHEN CHAR_LENGTH(cc.a

我试图得到一个按评论数排序的文章列表。我已经做了类似的过程,以获得一份按Atile的选票排序的列表,但我不知道为什么现在我不能让它工作

SELECT a.*,cc.params as catparams,cc.title as cattitle,u.username,
CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,
CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as   catslug,
CASE WHEN (COUNT(rs.id)=0) THEN 0 ELSE COUNT(rs.id) END as total_comments
FROM jos_content AS a
INNER JOIN table_users AS u ON u.id = a.created_by
INNER JOIN table_categories AS cc ON cc.id = a.catid
LEFT JOIN table__comments AS rs ON rs.id = a.id
此代码仅在文章在comments表中至少有一个条目时返回结果;我想要的是得到所有文章的列表,如果comments表中没有条目,则返回0作为total_comments。我试过内连接、左连接和右连接


非常感谢您的帮助

我想您需要一个子选择

SELECT 
    a.*,
    cc.params as catparams,
    cc.title as cattitle,
    u.username,
    CASE 
        WHEN CHAR_LENGTH(a.alias) 
        THEN CONCAT_WS(":", a.id, a.alias) 
        ELSE a.id END as slug,
    CASE 
    WHEN CHAR_LENGTH(cc.alias) 
        THEN CONCAT_WS(":", cc.id, cc.alias) 
        ELSE cc.id END as catslug,
    (SELECT COUNT(id) FROM table__comments WHERE id=a.id) as total_comments 
FROM 
    jos_content AS a
    INNER JOIN table_users AS u ON u.id = a.created_by
    INNER JOIN table_categories AS cc ON cc.id = a.catid