SQL: выбор количества нескольких таблиц

Я не думаю, что это будет слишком сложно объяснить, но, конечно, сложно заставить его работать.

Прежде всего, у меня есть пара таблиц относительно комментариев пользователей, одна таблица для каждого раздела (форум, статьи и т. Д.), Как показано ниже:

site_users (id, username, …) [Таблица, в которой содержится информация пользователя]

site_articles_comments (id, user_id, comment, …) [Где user_id = site_users.id]

site_forum_comments (id, user_id, comment, …) [То же самое для site_articles_comments]

Дело в том, что каждая новая строка является новым комментарием, и пользователи могут комментировать несколько раз, а это значит, что добавляется больше строк, что позволяет сортировать количество строк, чтобы получить количество комментариев в какой-то системе ранжирования.

Я смог сделать простой ранг форума, выполнив этот простой запрос:

SELECT u.id, u.username, COUNT (r.id) AS rank FROM site_users AS u LEFT JOIN site_forum_comments AS r ON u.id = r.user_id GROUP BY u.username, u.id ORDER BY rank DESC LIMIT: l

Этот запрос сортирует всех пользователей из базы данных, где пользователь, который прокомментировал больше всего, всегда на высоте.

С другой стороны, мне нужна глобальная система ранжирования, которая суммирует количество комментариев в каждом разделе (статьи, форум и т. Д.) И отображает пользователей соответственно.

Я играл с sql, чтобы сделать это, и последнее, что я придумал, это огромный запрос:

SELECT u.id, u.username, (COUNT (a.id) + COUNT (f.id)) AS rank FROM site_users u LEFT JOIN site_articles_comments a ON a.user_id = u.id LEFT JOIN site_forum_comments f ON f.user_id = u.id GROUP BY u.username, u.id ORDER BY rank DESC LIMIT: l

Это, однако, возвращает null. Что я могу сделать, чтобы добиться результата, который я хочу?

Заранее спасибо,

Матеуш

EDIT1: Извините за недостаток информации, это касается MySQL.