I have two related tables users and networks — social-media accounts of corresponding user. Accounts (networks) could be like these: facebook, linkedin, youtube, vimeo, etc...
Every user could have zero or more social-media accounts (in networks table).
In my case I need to count only video accounts (youtube and/or vimeo) of each user.
I'm trying this two queries:
SELECT users.email, COUNT(networks.network) as video_networks_counter,
FROM users
LEFT JOIN networks ON networks.user_id = users.id
WHERE networks.network='youtube' OR networks.network='video'
GROUP BY users.id
and
SELECT users.email,
CASE networks.network WHEN 'youtube' THEN 1 ELSE 0 END as video_networks_counter,
CASE networks.network WHEN 'vimeo' THEN 1 ELSE 0 END as video_networks_counter
FROM users
LEFT JOIN networks ON networks.user_id = users.id
GROUP BY users.id
Which don't work as desired.
Problem with first query is that user could not have any networks but he also have to be in a list with 0 counter. So WHERE
condition seems to be useless in my case.
Second query with CASE
also doesn't work.