我想在表格( 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 )?
谢谢
答案 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。