Reputation: 2548
I was searching and googling a lot but it was helpless. Here is my problem, with these tables:
Table members
id name address fk_family
1 Tony A Street 1
2 Miles B Street 1
3 Vic C Street 1
4 Luca D Street 2
5 Matt E Street 3
Table visits
id fk_member date
1 1 2013-07-20
2 1 2013-07-22
3 1 2013-07-23
4 2 2013-07-22
5 3 2013-07-19
6 4 2013-07-21
7 4 2013-07-22
8 4 2013-07-23
9 5 2013-07-20
10 5 2013-07-23
I need COUNT of visits, not by person, but by family, i expect using group by members.fk_family. Result table should looks like this:
fk_family visit_count
1 5
2 3
3 2
I cant find the correct way and right syntax to do this. Thanks in advance for your help!
Upvotes: 0
Views: 73
Reputation: 32290
According to your output, you are grouping by fk_family
and joining by fk_member
to member's id
. Just like this:
SELECT
m.fk_family AS fk_family,
COUNT(v.id) AS visits_count
FROM visits v
JOIN members m
ON v.fk_member = m.id
GROUP BY m.fk_family
Upvotes: 1
Reputation: 416
try this:
select fk_member as family, count(v.fk_member) visit_count from members m
inner join visits v on m.fk_family = v.fk_member
group by v.fk_member
if any error or wrong data occurs then let me know please.
Upvotes: 1