2014-09-30 3 views
1

У меня есть две базы данных, одна содержит фамилии, а другая содержит членов семьи.ВЫБЕРИТЕ общее количество нескольких ячеек на основе общего ID

Поскольку отдельные имена людей (фамилии) могут быть разделены между людьми, не связанными друг с другом, им присваивается семейный «идентификатор», который является общим для обеих баз данных.

familyNames : lastName | ID 

memberNames : firstName | ID 

Я хочу, чтобы подсчитать, сколько членов каждой семьи, выход выглядит как:

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

Есть ли способ сделать это без создания нового столбца? Благодарю.

(The 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

Точно, что мне нужно, спасибо! –

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 
Смежные вопросы