With data explorer, something like this should do the trick, for a given topic:
-- [params]
-- int :topic_id = 1
SELECT id, username
FROM users u
WHERE u.id NOT IN
(SELECT user_id FROM posts WHERE topic_id=:topic_id)
And for users who have not posted in a given category, something like:
-- [params]
-- int :cat_id = 1
SELECT id, username
FROM users u
WHERE u.id NOT IN
(SELECT user_id FROM posts WHERE topic_id IN
(SELECT id from topics where category_id=:cat_id)
)
(You can find category ids by running select id, name from categories).
Hmm actually that second query doesn’t seem to work for me for all categories though, not sure why, maybe someone else can test / tweak if needed!