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 (
    97851, 97855, 97859, 97863, 97867, 97871, 
    97911, 97912, 97913, 97914, 97943, 
    97944, 97945, 97946, 97968, 98107, 
    98108, 98109, 98110, 98111, 98112, 
    98113, 98114, 98351, 98352, 98353, 
    98354, 98355, 98356, 98357, 98358, 
    98359, 98360, 98361, 98362, 98363, 
    98364, 98365, 98366, 98685, 100145, 
    100891
  ) 
  AND cscart_discussion.object_type = "P" 
GROUP BY 
  cscart_discussion.object_id

Query time 0.00054

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "48.56"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_discussion",
            "access_type": "range",
            "possible_keys": [
              "object_id"
            ],
            "key": "object_id",
            "used_key_parts": [
              "object_id",
              "object_type"
            ],
            "key_length": "6",
            "rows_examined_per_scan": 42,
            "rows_produced_per_join": 42,
            "filtered": "100.00",
            "index_condition": "((`nuie_scalesta_net`.`cscart_discussion`.`object_id` in (97851,97855,97859,97863,97867,97871,97911,97912,97913,97914,97943,97944,97945,97946,97968,98107,98108,98109,98110,98111,98112,98113,98114,98351,98352,98353,98354,98355,98356,98357,98358,98359,98360,98361,98362,98363,98364,98365,98366,98685,100145,100891)) and (`nuie_scalesta_net`.`cscart_discussion`.`object_type` = 'P'))",
            "cost_info": {
              "read_cost": "25.21",
              "eval_cost": "4.20",
              "prefix_cost": "29.41",
              "data_read_per_join": "1008"
            },
            "used_columns": [
              "thread_id",
              "object_id",
              "object_type",
              "type"
            ]
          }
        },
        {
          "table": {
            "table_name": "cscart_discussion_posts",
            "access_type": "ref",
            "possible_keys": [
              "thread_id",
              "thread_id_2"
            ],
            "key": "thread_id",
            "used_key_parts": [
              "thread_id"
            ],
            "key_length": "3",
            "ref": [
              "nuie_scalesta_net.cscart_discussion.thread_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 42,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "10.50",
              "eval_cost": "4.20",
              "prefix_cost": "44.11",
              "data_read_per_join": "18K"
            },
            "used_columns": [
              "post_id",
              "thread_id",
              "status"
            ],
            "attached_condition": "<if>(is_not_null_compl(cscart_discussion_posts), (`nuie_scalesta_net`.`cscart_discussion_posts`.`status` = 'A'), true)"
          }
        },
        {
          "table": {
            "table_name": "cscart_discussion_rating",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY",
              "thread_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 42,
            "filtered": "100.00",
            "using_join_buffer": "hash join",
            "cost_info": {
              "read_cost": "0.25",
              "eval_cost": "4.20",
              "prefix_cost": "48.56",
              "data_read_per_join": "672"
            },
            "used_columns": [
              "rating_value",
              "post_id",
              "thread_id"
            ],
            "attached_condition": "<if>(is_not_null_compl(cscart_discussion_rating), ((`nuie_scalesta_net`.`cscart_discussion_rating`.`post_id` = `nuie_scalesta_net`.`cscart_discussion_posts`.`post_id`) and (`nuie_scalesta_net`.`cscart_discussion_rating`.`thread_id` = `nuie_scalesta_net`.`cscart_discussion`.`thread_id`) and (`nuie_scalesta_net`.`cscart_discussion_rating`.`rating_value` <> 0)), true)"
          }
        }
      ]
    }
  }
}

Result

product_id average_rating discussion_type discussion_thread_id
97851 B 106032
97855 B 106036
97859 B 106040
97863 B 106044
97867 B 106048
97871 B 106052
97911 B 106092
97912 B 106093
97913 B 106094
97914 B 106095
97943 B 106124
97944 B 106125
97945 B 106126
97946 B 106127
97968 B 106149
98107 B 106288
98108 B 106289
98109 B 106290
98110 B 106291
98111 B 106292
98112 B 106293
98113 B 106294
98114 B 106295
98351 B 106532
98352 B 106533
98353 B 106534
98354 B 106535
98355 B 106536
98356 B 106537
98357 B 106538
98358 B 106539
98359 B 106540
98360 B 106541
98361 B 106542
98362 B 106543
98363 B 106544
98364 B 106545
98365 B 106546
98366 B 106547
98685 B 106866
100145 B 108325
100891 B 109071