У нас есть три таблицы, которые мы хотели бы запросить, чтобы выяснить количество клиентов на бизнес и количество записей на бизнес
Три таблицы:
businessDetails
-------------------
businessDetails.ID
businessDetails.name
clientDetails
-------------------
clientDetails.ID
clientDetails.businessDetailsID
records
-------------------
records.ID
records.businessDetailsID
Мыне возникает проблем с возможностью выбрать счетчик из двух таблиц одновременно (businessDetails плюс записи clientDetails ИЛИ).Например,
SELECT businessDetails.name AS businessName
, COUNT(clientDetails.businessDetailsID) AS totalClients
FROM `businessDetails`
INNER JOIN clientDetails
ON clientDetails.businessDetailsID = businessDetails.businessDetailsID
GROUP BY
businessDetails.name
ORDER BY
totalClients DESC
Этот запрос дает нам хороший результат, как и ожидалось:
--------------------------------
businessName | totalClients
--------------------------------
Initech | 23
Cylon Inc | 148
The Dude Ltd | 71
Проблема, с которой мы сталкиваемся, заключается в том, как подсчитать обе записи clientDetails И одновременно.Мы попробовали следующий запрос, но обнаружили, что он по какой-то причине умножает количество totalClients:
SELECT businessDetails.name AS businessName
, COUNT(clientDetails.businessDetailsID) AS totalClients
, COUNT(records.businessDetailsID) AS totalRecords
FROM `businessDetails`
INNER JOIN clientDetails
ON clientDetails.businessDetailsID = businessDetails.businessDetailsID
INNER JOIN records ON records.businessDetailsID = businessDetails.ID
GROUP BY
businessDetails.name
ORDER BY
totalClients DESC
Это возвращает результат примерно так:
--------------------------------------------------------
businessName | totalClients | totalRecords
--------------------------------------------------------
Initech | 93 | 93
Cylon Inc | 398 | 398
The Dude Ltd | 215 | 215
Я ожидаю, что мыпросто делаю простую ошибку.Любая помощь будет принята с благодарностью.