在相关表的count()中包含null和zero

时间:2016-01-31 13:36:18

标签: mysql

我想在表格( staging )中列出表格中的相关记录数量( study )。

到目前为止,这个陈述运作良好,但只返回有> 0相关记录的行:

SELECT staging.*, 
COUNT(studies.PMID) AS refcount 
FROM studies
LEFT JOIN staging
ON studies.rs_number = staging.rs
GROUP BY staging.idstaging;

如何调整此语句以列出表格中的所有行(登台),包括表格中有零或空相关记录的位置( study )?

谢谢

1 个答案:

答案 0 :(得分:2)

LEFT JOIN

中的表格顺序错误
SELECT staging.*, COUNT(studies.PMID) AS refcount 
FROM staging LEFT JOIN
     studies
     ON studies.rs_number = staging.rs
GROUP BY staging.idstaging;

LEFT JOIN将所有内容保存在第一个("左")表中,并将所有匹配的行保留在第二个表中。如果您想将所有内容保留在staging表中,请将其放在第一位。

并且,如果有人想抱怨staging.*GROUP BY的使用。这种特殊用法(大概)符合ANSI标准,因为staging.idstaging(可能)是该表中的唯一ID。