我有两张桌子:
分组表的字段是:
联系人表格字段为:
现在,我想选择所有具有群组联系人数量的群组......
例如:
groupname联系人计数
朋友12 | 学校8 | ennemy 0 | 家庭25 |我希望所有群体显示(包括没有任何联系的群组)
非常感谢
答案 0 :(得分:1)
你需要做左连接然后分组。请关注
select a.group_name, count(b.contact_id) from
groups a left join contacts b on
a.group_id = b.contact_group_id
group by a.group_name
请参阅Fiddle
答案 1 :(得分:0)
创建一个视图,其中包含每个组的联系人数,然后使用您的组表将外部联接视图。
CREATE VIEW contactscount AS
SELECT contact_group_id, COUNT(contact_id) AS count FROM contacts GROUP BY contact_group_id
SELECT * FROM groups OUTER JOIN contactscount ON contactscount.contact_group_id=groups.group_id
这选择Null表示没有联系人的组的计数。你可以省略视图。
答案 2 :(得分:0)
SELECT table1.group_name,COUNT(table2.contact_id)
FROM table1 INNER JOIN table2 ON table1 .group_id = table2 .contact_group_id GROUP BY table1.group_name