select * from books where
id in (select book_id from book_genres where genres_id in (id жанров вашей книги) group by book_id having count(*) >= 2)
and id in (select book_id from book_tags where tag_id in (id тегов вашей книги) group by book_id having count(*) >= 2)
and id <> ( id вашей книги )