2014-09-30 42 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