У меня 4 таблицы.
Таблица 1: статьи (есть некоторые продукты)
Таблица 2: компании (есть несколько компаний, например Mitsubishi, Haier et al. c)
Таблица 3: article_categories (имеет несколько идентификаторов категорий, связанных с каждым продуктом)
Таблица 4: article_company (содержит несколько идентификаторов компаний, связанных с каждым продуктом)
Я создал следующий sqlfiddle
http://sqlfiddle.com/#! 9 / 2a3b8d7 / 15
Я хочу подсчитать продукты для каждой компании.
SELECT comp.CompanyID,comp.title,comp.status,count(aco.ArticleID) as count_articles
FROM companies comp
inner join article_company aco on aco.CompanyID=comp.CompanyID
inner join articles art on art.ArticleID=aco.ArticleID
inner join article_category ac on ac.ArticleID=aco.ArticleID
where comp.status = 1
AND ac.CategoryID IN (245,253,259,261,521,263,743)
group by comp.CompanyID;
Когда я запускаю запрос я получаю 18 вместо 15.
Если я выполняю следующий запрос, я получаю 15 записей.
SELECT comp.CompanyID,comp.title,comp.status,count(aco.ArticleID) as count_articles
FROM companies comp
inner join article_company aco on aco.CompanyID=comp.CompanyID
inner join articles art on art.ArticleID=aco.ArticleID
where comp.status = 1
group by comp.CompanyID;
Любые предложения по изменению первого запроса, чтобы получить результаты из второго запроса ?