我想在表(阶段)中列出表(研究)中相关记录的数量。

到目前为止,此语句运行良好,但仅返回有> 0个相关记录的行:

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


如何调整此语句以列出表(阶段)中的所有行,包括表(研究)中零或空相关记录的位置?

谢谢

最佳答案

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。

关于mysql - 在相关表的count()中包含null和零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35114420/

10-12 20:20