【发布时间】:2016-11-12 12:49:24
【问题描述】:
考虑以下架构中的三个表SQL Fiddle。
- 这个迷你模型代表了我正在处理的数据库的一个简单示例。
- Users表有4个属性,user_id(主键auto_increment),country_id是引用Country表的外键,user_msisdn是电话用户编号和用户名。
- Contacts 表有 3 个属性,contact_id(主键 auto_increment),user_id 是引用 Users 表的外键,contact_msisdn 是用户联系人的电话号码(您的电话联系人列表中的电话号码)。
- Users表和Contacts表的关系是多对多的,一个用户可以有多个联系人,一个联系人可以在任何用户的联系人列表。
要求:
对于每个国家/地区,获取至少有一个“用户联系人”的用户计数,其中“用户联系人”是作为用户的联系人,以及没有任何“用户联系人”的用户计数"。
例如, 对于 country = 'Sweden' (country_id = 3),user_id = 3 在 Contacts 表中有两个联系人被考虑“用户联系人”与(msisdn = '+220011223344' & '+224433221100')。所以我想要的查询结果:瑞典有 1 个用户 (user_id = 3) 至少有一个“用户联系人”,零个用户没有“用户联系人”,依此类推。
【问题讨论】: