try this :
SELECT B.*,SC.cate_name,(
CASE WHEN special_offer_type ='Fixed Value'
THEN B.price - special_offer
WHEN special_offer_type = 'Discount %'
THEN B.price * ( 1 - special_offer / 100.0 )
ELSE B.price
END
) AS final_price,
IFNULL(xx.avg_rate,'0'),
IFNULL(yy.count_comment,'0')
FROM book B JOIN setting_category SC ON B.cate_id = SC.cate_id
LEFT JOIN (select a.isbn,sum(a.rate)/count(a.rate) as avg_rate
from book_rating a
group by a.isbn) as xx on b.isbn = xx.isbn
LEFT JOIN (select c.isbn,count(*) as count_comment from book_comment c
group by c.isbn) as yy on b.isbn = yy.isbn
CMIIW
EDITED..