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 (
    94761, 94763, 94765, 94816, 94950, 94951, 
    94956, 94957, 95566, 95569, 95571, 
    95574, 95575, 95578, 95579, 95580, 
    95581, 95587, 95588, 95589, 95590, 
    95591, 95629, 95630, 95631, 95632, 
    95633, 95634, 95635, 95636, 95637, 
    95641, 95642, 95643, 95644, 95647, 
    95648, 95649, 95650, 95651, 95652, 
    95655, 95656, 95657, 95658, 95659, 
    95660, 95935
  ) 
  AND cscart_discussion.object_type = "P" 
GROUP BY 
  cscart_discussion.object_id

Query time 0.00123

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 (94761,94763,94765,94816,94950,94951,94956,94957,95566,95569,95571,95574,95575,95578,95579,95580,95581,95587,95588,95589,95590,95591,95629,95630,95631,95632,95633,95634,95635,95636,95637,95641,95642,95643,95644,95647,95648,95649,95650,95651,95652,95655,95656,95657,95658,95659,95660,95935)) 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
94761 B 102933
94763 B 102935
94765 B 102937
94816 B 102988
94950 B 103122
94951 B 103123
94956 B 103128
94957 B 103129
95566 B 103738
95569 B 103741
95571 B 103743
95574 B 103746
95575 B 103747
95578 B 103750
95579 B 103751
95580 B 103752
95581 B 103753
95587 B 103759
95588 B 103760
95589 B 103761
95590 B 103762
95591 B 103763
95629 B 103801
95630 B 103802
95631 B 103803
95632 B 103804
95633 B 103805
95634 B 103806
95635 B 103807
95636 B 103808
95637 B 103809
95641 B 103813
95642 B 103814
95643 B 103815
95644 B 103816
95647 B 103819
95648 B 103820
95649 B 103821
95650 B 103822
95651 B 103823
95652 B 103824
95655 B 103827
95656 B 103828
95657 B 103829
95658 B 103830
95659 B 103831
95660 B 103832
95935 B 104107