Many-to-many would mean that the same row in table1 can be related to multiple rows in table2, and vice versa.
And the reason it's so "difficult" is because you've presented vague generalities without giving the real-world example. And you've left out fields too --- like the rating aspect -- so its hard to know what's in the tables. You may think it's not relevant, but that doesn't make it any eaiser for the rest of us to figure out what you already know.
Based on what you've just recently posted, I understand the tables as follows:
"table1" = rating - ( item_id, user_id, rating_value )
"table2" = item - ( item_id, user_id, ready )
I assume the user_id in the item table refers to the person who created the item, whereas the user_id in the rating table refers to the person actually rating the item. So this is a one-to-many relationship -- each item can have multiple ratings, but not vice-versa.
If this is all true, then you need to be joining on item_id, NOT user_id.
select count(r.item_id) from ratings as r inner join items as i using ( item_id ) where i.ready = 1
There should be no "multiplying" as you indicated above, since there is only one item record for each ratings record.