SELECT 
  cscart_discussion.object_id AS product_id, 
  AVG(
    cscart_discussion_rating.rating_value
  ) AS average_rating, 
  cscart_discussion.type AS discussion_type, 
  cscart_discussion.thread_id AS discussion_thread_id 
FROM 
  cscart_discussion 
  LEFT JOIN cscart_discussion_posts ON cscart_discussion_posts.thread_id = cscart_discussion.thread_id 
  AND cscart_discussion_posts.status = "A" 
  LEFT JOIN cscart_discussion_rating ON cscart_discussion.thread_id = cscart_discussion_rating.thread_id 
  AND cscart_discussion_rating.post_id = cscart_discussion_posts.post_id 
  AND cscart_discussion_rating.rating_value != 0 
WHERE 
  cscart_discussion.object_id IN (
    10167, 10152, 10168, 10148, 10145, 10170, 
    10147, 10143, 10146, 10153, 10144, 
    10150, 10151, 10149, 10154, 10156, 
    10169, 10171
  ) 
  AND cscart_discussion.object_type = "P" 
  AND cscart_discussion.company_id = 3 
GROUP BY 
  cscart_discussion.object_id

Query time 0.00052

Explain
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE cscart_discussion range object_id,company_id object_id 10 18 Using index condition
1 SIMPLE cscart_discussion_posts ref thread_id,thread_id_2 thread_id 3 mahm3t_cs443.cscart_discussion.thread_id 4 Using where
1 SIMPLE cscart_discussion_rating eq_ref PRIMARY,thread_id PRIMARY 3 mahm3t_cs443.cscart_discussion_posts.post_id 1 Using where

Result

product_id average_rating discussion_type discussion_thread_id
10143 B 5456
10144 B 5457
10145 B 5470
10146 B 5455
10147 B 5454
10148 B 5471
10149 B 5462
10150 B 5460
10151 B 5458
10152 B 5468
10153 B 5459
10154 B 5461
10156 B 5465
10167 B 5472
10168 B 5469
10169 B 5466
10170 B 5464
10171 B 5467