2014-09-30 41 views
1

我有两个数据库,一个保存姓氏,另一个保存家庭成员。根据共享ID选择多个单元格的总数

由于可以在不相关的人之间共享不同的姓氏(姓氏),因此会为他们分配在两个数据库之间共享的家庭“ID”。

familyNames : lastName | ID 

memberNames : firstName | ID 

我要统计每个家庭有多少成员,输出看起来像:

Family Name | Members 
---------------------- 
Johnson  | 14 
---------------------- 
Brown  | 21 
---------------------- 
White  | 33 

有没有办法做到这一点,而无需创建一个新的列?谢谢。

(该familyNames拥有更多的列不相关的问题,因此有理由有两个表)

回答

3
select f.lastname, count(m.firstname) as cnt 
from familynames f 
left join membernames m on m.id = f.id 
group by f.id, f.lastname 
order by f.lastname 
+0

正是我需要的,谢谢! – 2014-09-30 01:45:08

2

这里数据库名称的前缀,以表名,DB1,DB2是数据库名称。

SELECT FN.lastName as 'Family Name', COUNT(*) as Members FROM 
DB1.familyNames FN 
JOIN DB2.memberNames MN 
on FN.ID = MN.ID 
group by FN.lastName