在SQL查询中显示零值数据?

Sto*_*per 0 sql select count

我有以下两个表(针对此问题进行了简化):

CREATE TABLE team (
 teamID CHAR(6) NOT NULL PRIMARY KEY); 

CREATE TABLE member (
 memberID CHAR(7) NOT NULL PRIMARY KEY,
 teamID CHAR(6) NOT NULL REFERENCES team(teamID) );
Run Code Online (Sandbox Code Playgroud)

我还有以下查询,即列出每个团队中的成员数量:

SELECT teamID, count(memberID) AS [noOfMembers]
FROM member
GROUP by teamID;
Run Code Online (Sandbox Code Playgroud)

但是,我有四个团队(MRT1,MRT2,MRT3和MRT4).我的表中的成员只属于第2组和第3组,因此当我运行查询时,我得到以下输出:

MRT2:7,MRT3:14

我不确定如何调整查询以列出所有4个团队:

MRT1:0,MRT2:7,MRT3:14,MRT4:0

我一直在搞乱子查询来解决这个问题而没有任何运气.有任何想法吗?谢谢

Joh*_*lan 5

尝试从TEAM中选择离开JOIN-ing会员

SELECT Team.Teamid, count(memberid)
FROM 
    TEAM
LEFT OUTER JOIN 
     Member on Member.teamid = Team.Teamid
GROUP by Team.Teamid
Run Code Online (Sandbox Code Playgroud)

只是为了给你一些背景知道这是做什么的.

它说

给我团队中的所有团队成员,然后为每个人计算成员表中的匹配,即使没有匹配.

如果你使用

SELECT Team.Teamid, count(memberid)
FROM 
    TEAM
INNER JOIN 
     Member on Member.teamid = Team.Teamid
GROUP by Team.Teamid
Run Code Online (Sandbox Code Playgroud)

这转化为

从团队中给我所有的团队成员,然后为每个团队成员计算成员表中的匹配项,但前提是有匹配项.