Это может быть немного сложно объяснить, но я постараюсь.
Я хочу отобразить список категорий (хранящихся в 1 таблице) и количество доменов, связанных с каждой категорией (хранящихся в другой таблице).
Обезьяна в этом случае заключается в том, что с каждым доменом связан набор записей (которые хранятся в третьей таблице). Я хочу показать только категории, с которыми связаны домены, а количество доменов должно отражать только те домены, с которыми связаны записи (из 3-й таблицы).
Мой текущий запрос
SELECT r.rev_id, c.cat_id, c.cat_name, count(d.dom_id) As rev_id_count FROM reviews r
INNER JOIN domains d ON r.rev_domain_from=d.dom_id
INNER JOIN categories c ON d.dom_catid=c.cat_id
WHERE rev_status = 1
GROUP BY cat_name
ORDER BY cat_name
Это выбирает правильные имена категорий, но показывает ложное количество (rev_id_count). Если в категории есть 2 домена, и в каждом домене есть 2 записи, то будет показано число 4, когда оно должно быть 2.