Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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
使用count和GROUP BY在MySQL中显示计数为0的行_Mysql_Count_Outer Join - Fatal编程技术网

使用count和GROUP BY在MySQL中显示计数为0的行

使用count和GROUP BY在MySQL中显示计数为0的行,mysql,count,outer-join,Mysql,Count,Outer Join,我有两个表,主题和内容,其中内容引用带有外键的主题。我想显示每个主题在内容表0中出现的次数(如果没有出现)。但是下面的查询只给出了count>0的行,而忽略了其他行: SELECT Subject.id, Subject.name, COUNT(Content.subject_id) AS `count` FROM Subject LEFT JOIN Content ON Subject.id = Content.subject_id WHERE type = @type GROUP BY Su

我有两个表,主题和内容,其中内容引用带有外键的主题。我想显示每个主题在内容表0中出现的次数(如果没有出现)。但是下面的查询只给出了count>0的行,而忽略了其他行:

SELECT Subject.id, Subject.name, COUNT(Content.subject_id) AS `count`
FROM Subject LEFT JOIN Content
ON Subject.id = Content.subject_id
WHERE type = @type
GROUP BY Subject.id;
我检查并试图遵循,并张贴,但由于某种原因,上述代码不工作

有什么想法吗

编辑:
类型字段位于内容表中,这导致了问题,正如所指出的那样,

执行外部联接。将空值替换为0。将非null替换为1。对该列进行求和,而不是计数


希望这有助于执行外部联接。将空值替换为0。将非null替换为1。对该列进行求和,而不是计数

希望这有助于

哪一个表是a列类型?我假设它是内容-通过在WHERE子句中包含字段,您强制左连接右侧的内容表包含数据,这意味着左连接实际上只是一个内部连接

尝试:

类型a列在哪个表中?我假设它是内容-通过在WHERE子句中包含字段,您强制左连接右侧的内容表包含数据,这意味着左连接实际上只是一个内部连接

尝试:

列类型属于哪个表?如果type在subject中,您的左连接应该有效。所以我假设类型是内容。然后问题是WHERE子句与内容中没有匹配行的情况不匹配。使用

列类型属于哪个表?如果type在subject中,您的左连接应该有效。所以我假设类型是内容。然后问题是WHERE子句与内容中没有匹配行的情况不匹配。使用


不,COUNTsomething跳过null something。错误在WHERE vs JOIN中。不,COUNTsomething跳过null something。错误在WHERE vs JOIN中。
SELECT Subject.id, Subject.name, COUNT(Content.subject_id) AS `count`
FROM Subject
LEFT JOIN Content
ON Subject.id = Content.subject_id
AND type = @type
GROUP BY Subject.id;
WHERE (type = @type) OR (type IS NULL)