Hi Renato,
That first query isn’t quite right. It will return users without review assignments, yes, but you’d also want to make sure that those users were actually reviewers, which means a join across the roles table. The query might look something like this:
SELECT DISTINCT users.user_id FROM users, `roles`, review_assignments where users.user_id = roles.user_id AND role_id = 4096 and users.user_id NOT IN (SELECT distinct reviewer_id from review_assignments)
I did some quick sanity tests on a local 2.4.8 install I have here and the user ids I get back are reviewers with no assignments. ~1200 reviewers out of ~5000 in this installation.
Cheers,
Jason