Здравствуйте, у меня есть следующая схема БД, 3 таблицы:
connected_accounts (fields: id, user_id, account_name)
contacts (fields: id, user_id, connected_account_id, type)
user_recommendations (fields: id, user_id, contact_id)
Я пытаюсь вывести запрос, который показывает для каждой записи connect_account в БД общее количество контактов и связанных с ним рекомендаций пользователя.,Вот что у меня есть:
SELECT
ca.id,
ca.user_id,
ca.account_name,
COUNT(c.id) AS Total
FROM connected_accounts ca
LEFT JOIN contacts c
ON ca.id = c.connected_account_id
AND c.contact_type = 'email'
WHERE ca.resource_type = 'calendar.readonly'
ORDER BY ca.id DESC
LIMIT 8
Это не работает правильно ... Желаемый результат будет выглядеть так:
РЕЗУЛЬТАТЫ
id | user_id | account_name | Total Contacts | Total User Recommendations
Я еще не присоединился к рекомендациям пользователя, так как соединение контактов не работает должным образом.
Что я делаю неправильно в своем запросе?спасибо
ОБНОВЛЕНО:
SELECT
ca.id,
ca.user_id,
ca.account_name,
COUNT(c.id) AS 'Total Contacts',
COUNT(pr.id) AS 'Total User Rec.'
FROM connected_accounts ca
LEFT JOIN contacts c
ON ca.id = c.connected_account_id
AND c.contact_type = 'email'
LEFT JOIN user_recommendations pr
ON ca.id = pr.connected_account_id
WHERE ca.resource_type = 'calendar.readonly'
GROUP BY ca.id, ca.user_id, ca.account_name
ORDER BY ca.id DESC
LIMIT 8
ОБНОВЛЕНО ВЫШЕ .. Вышеупомянутый обновленный запрос возвращает тот же # для Total Contacts
& Total User Rec
- число, которое совпадает соба - правильный номер для общего числа контактов. Total User Rec
не возвращается ... почему?