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 (
    100858, 100859, 100860, 100861, 100862, 
    100867, 100868, 100869, 100870, 100877, 
    100878, 101055, 101056, 101057, 101058, 
    101059, 101060, 101061, 101062, 101063, 
    101064, 101065, 101066, 101067, 101068, 
    101069, 101070, 101071, 101072, 101073, 
    101074, 101075, 101076, 101077, 101078, 
    101079, 101080, 101081, 101082, 101083, 
    101084, 101085, 101086, 101087, 101088, 
    101089, 101090, 101091
  ) 
  AND cscart_discussion.object_type = "P" 
GROUP BY 
  cscart_discussion.object_id

Query time 0.00050

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "55.46"
    },
    "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": 48,
            "rows_produced_per_join": 48,
            "filtered": "100.00",
            "index_condition": "((`nuie_scalesta_net`.`cscart_discussion`.`object_id` in (100858,100859,100860,100861,100862,100867,100868,100869,100870,100877,100878,101055,101056,101057,101058,101059,101060,101061,101062,101063,101064,101065,101066,101067,101068,101069,101070,101071,101072,101073,101074,101075,101076,101077,101078,101079,101080,101081,101082,101083,101084,101085,101086,101087,101088,101089,101090,101091)) and (`nuie_scalesta_net`.`cscart_discussion`.`object_type` = 'P'))",
            "cost_info": {
              "read_cost": "28.81",
              "eval_cost": "4.80",
              "prefix_cost": "33.61",
              "data_read_per_join": "1K"
            },
            "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": 48,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "12.00",
              "eval_cost": "4.80",
              "prefix_cost": "50.41",
              "data_read_per_join": "21K"
            },
            "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": 48,
            "filtered": "100.00",
            "using_join_buffer": "hash join",
            "cost_info": {
              "read_cost": "0.25",
              "eval_cost": "4.80",
              "prefix_cost": "55.46",
              "data_read_per_join": "768"
            },
            "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
100858 B 109038
100859 B 109039
100860 B 109040
100861 B 109041
100862 B 109042
100867 B 109047
100868 B 109048
100869 B 109049
100870 B 109050
100877 B 109057
100878 B 109058
101055 B 109238
101056 B 109239
101057 B 109240
101058 B 109241
101059 B 109242
101060 B 109243
101061 B 109244
101062 B 109245
101063 B 109246
101064 B 109247
101065 B 109248
101066 B 109249
101067 B 109250
101068 B 109251
101069 B 109252
101070 B 109253
101071 B 109254
101072 B 109255
101073 B 109256
101074 B 109257
101075 B 109258
101076 B 109259
101077 B 109260
101078 B 109261
101079 B 109262
101080 B 109263
101081 B 109264
101082 B 109265
101083 B 109266
101084 B 109267
101085 B 109268
101086 B 109269
101087 B 109270
101088 B 109271
101089 B 109272
101090 B 109273
101091 B 109274