如何让COUNT在具有多对多关系的表中显示零?

时间:2015-06-19 09:42:02

标签: sql left-join

以下查询未显示没有用户所属的组。 我想显示的计数也是0。我该怎么做?

像这样应该是 A组8 B组0 C组2

现在是这个 A组8 C组2

SELECT      UsersToGroups.GroupID, 
            groups.Group, 
            COUNT(UsersToGroups.UserID) AS countUsersPerGroup

FROM        users_Groups AS groups

LEFT JOIN   AssociationUsersToGroups AS UsersToGroups ON
            UsersToGroups.GroupID = 
            groups.ID

LEFT JOIN   users_Users AS users ON
            UsersToGroups.UserID = 
            users.ID                                    

GROUP BY    GroupID, 
            groups.Group                        

ORDER BY    groups.Group ASC

2 个答案:

答案 0 :(得分:1)

查询将选择所有组

line = re.sub('\.+', '.', line)

如果添加SELECT groups.ID, groups.Group, FROM users_Groups AS groups ,您应该会收到参加人数众多的小组:

LEFT JOIN AssociationUsersToGroups

答案 1 :(得分:0)

首先,我不明白为什么你需要加入用户表? 没有必要假设您在“用户”和“用户到组”关联之间存在外键关系 表html, body, form, #map-canvas { height: 100%; margin: 0px; padding: 0px } #panel { position: absolute; top: 5px; left: 50%; margin-left: -180px; z-index: 5; background-color: #fff; padding: 5px; border: 1px solid #999; }

这对我有用:

<script src="https://maps.googleapis.com/maps/api/js?v=3"></script>
<form id="form1" runat="server">
    <div id="panel">
      <input id="address" type="textbox" value="Sydney, NSW">
      <input type="button" value="Geocode" onclick="codeAddress()">
      <input name="latlng" />
    </div>
    <div id="map-canvas"></div>
    </form>

输出:

output: