Здравствуйте. Помогите пожалуйста написать запрос.
У меня есть таблица с новостями, и таблица с новостями, который уже просмотрены конкретным пользователем. Мне нужно получить некоторую информацию и пользователе, а также общее количество непрочитанных новостей, и количество непрочитанных новостей с какого-либо источника.
В первом случае, когда нужно получить данные и количество непрочитанных новостей, делаю примерно так:
SELECT /*какие-то поля*/, count(parsed.id) - count(viewed.id) as unwatched
FROM muz_users_subscriptions muz_sub
LEFT JOIN muz_artists artist ON artist.id = muz_sub.entity_id
LEFT JOIN muz_parsed_data parsed ON parsed.entity_id = artist.id
LEFT JOIN muz_viewed viewed ON viewed.entity_id = parsed.id AND viewed.user_id = 1
WHERE muz_sub.user_id = 1
GROUP BY artist.id
Получаю все как надо.
А теперь мне нужно в этом же запросе помимо общего количества непрочитанных новостей, посчитать, сколько новостей именно с youtube (любой источник) не прочитано.
Пытаюсь так:
SELECT count(parsed.id) - count(viewed.id) as unwatched,
count(parsed_youtube.id) - count(viewed_youtube.id) as youtube_unwatched
FROM muz_users_subscriptions muz_sub
LEFT JOIN muz_artists artist ON artist.id = muz_sub.entity_id
LEFT JOIN muz_parsed_data parsed ON parsed.entity_id = artist.id
LEFT JOIN muz_viewed viewed ON viewed.entity_id = parsed.id AND viewed.user_id = 2
LEFT JOIN muz_parsed_data parsed_youtube ON parsed_youtube.entity_id = artist.id
AND parsed_youtube.url LIKE '%youtube%'
LEFT JOIN muz_viewed viewed_youtube ON viewed_youtube.entity_id = parsed_youtube.id
WHERE muz_sub.user_id = 2
GROUP BY artist.id
Но результат некорректный. Помогите пожалуйста