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 (
    99807, 99808, 99809, 99810, 99811, 99812, 
    99813, 99814, 99815, 99816, 99817, 
    99818, 99819, 99820, 99821, 99822, 
    99823, 99824, 99825, 99826, 99827, 
    99828, 99829, 99830, 99831, 99835, 
    99836, 99837, 99838, 99885, 99886, 
    99887, 99888, 99889, 99890, 99891, 
    99892, 99919, 99920, 99921, 99922, 
    99923, 99924, 99925, 99926, 99927, 
    99928, 99929
  ) 
  AND cscart_discussion.object_type = "P" 
GROUP BY 
  cscart_discussion.object_id

Query time 0.00104

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 (99807,99808,99809,99810,99811,99812,99813,99814,99815,99816,99817,99818,99819,99820,99821,99822,99823,99824,99825,99826,99827,99828,99829,99830,99831,99835,99836,99837,99838,99885,99886,99887,99888,99889,99890,99891,99892,99919,99920,99921,99922,99923,99924,99925,99926,99927,99928,99929)) 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
99807 B 107987
99808 B 107988
99809 B 107989
99810 B 107990
99811 B 107991
99812 B 107992
99813 B 107993
99814 B 107994
99815 B 107995
99816 B 107996
99817 B 107997
99818 B 107998
99819 B 107999
99820 B 108000
99821 B 108001
99822 B 108002
99823 B 108003
99824 B 108004
99825 B 108005
99826 B 108006
99827 B 108007
99828 B 108008
99829 B 108009
99830 B 108010
99831 B 108011
99835 B 108015
99836 B 108016
99837 B 108017
99838 B 108018
99885 B 108065
99886 B 108066
99887 B 108067
99888 B 108068
99889 B 108069
99890 B 108070
99891 B 108071
99892 B 108072
99919 B 108099
99920 B 108100
99921 B 108101
99922 B 108102
99923 B 108103
99924 B 108104
99925 B 108105
99926 B 108106
99927 B 108107
99928 B 108108
99929 B 108109