Your ...merge them together... can be interpreted in several ways. If you want to simply union both resultsets keeping order of each resultset intact then you can do
(
SELECT u.name,
COUNT(c.cid) CommentCount
FROM dr_users u JOIN dr_comments c
ON u.uid = c.uid
GROUP BY u.name
ORDER BY COUNT(c.cid) DESC
LIMIT 10
)
UNION ALL
(
SELECT u.username,
COUNT(C.post_id) CommentCount
FROM phpbb_users u JOIN phpbb_posts c
ON u.user_id = c.poster_id
GROUP BY u.username
ORDER BY COUNT(c.post_id) DESC
LIMIT 10
)
If you need to union both resultsets and then reorder them
(
SELECT u.name,
COUNT(c.cid) CommentCount
FROM dr_users u JOIN dr_comments c
ON u.uid = c.uid
GROUP BY u.name
ORDER BY COUNT(c.cid) DESC
LIMIT 10
)
UNION ALL
(
SELECT u.username,
COUNT(C.post_id) CommentCount
FROM phpbb_users u JOIN phpbb_posts c
ON u.user_id = c.poster_id
GROUP BY u.username
ORDER BY COUNT(c.post_id) DESC
LIMIT 10
)
ORDER BY CommentCount DESC
It also might be interpreted as get TOP 10 from both phpbb and drupal
SELECT name, COUNT(cid) CommentCount
FROM
(
SELECT u.name, c.cid
FROM dr_users u JOIN dr_comments c
ON u.uid = c.uid
UNION ALL
SELECT u.username, c.post_id
FROM phpbb_users u JOIN phpbb_posts c
ON u.user_id = c.poster_id
) q
GROUP BY name
ORDER BY CommentCount DESC
LIMIT 10
Here is SQLFiddle demo