SELECT 
  discussion.object_id AS product_id, 
  AVG(discussion_rating.rating_value) AS average_rating, 
  discussion.type AS discussion_type, 
  discussion.thread_id AS discussion_thread_id 
FROM 
  discussion 
  LEFT JOIN discussion_posts ON discussion_posts.thread_id = discussion.thread_id 
  AND discussion_posts.status = "A" 
  LEFT JOIN discussion_rating ON discussion.thread_id = discussion_rating.thread_id 
  AND discussion_rating.post_id = discussion_posts.post_id 
  AND discussion_rating.rating_value != 0 
WHERE 
  discussion.object_id IN (
    95114, 99478, 136598, 98587, 93064, 
    90460, 99480, 91782, 92017, 91783, 
    91777, 95110, 95716, 92365, 131318, 
    131312, 98586, 104674, 93059, 104677, 
    98584, 92030, 127795, 93062, 92461, 
    92031, 92465, 91357, 92462, 92367, 
    93063, 95702, 93065, 97069, 93066, 
    92464, 123544, 93058, 97078, 189132, 
    104676, 91356, 96730, 97156, 123546, 
    104675, 92463, 95107, 131316, 131320, 
    95072, 93054, 104673, 127897, 97071, 
    136415, 93061
  ) 
  AND discussion.object_type = "P" 
GROUP BY 
  discussion.object_id

Query time 0.01012

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "155.15"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "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": 57,
            "rows_produced_per_join": 57,
            "filtered": "100.00",
            "index_condition": "((`goimagine`.`discussion`.`object_id` in (95114,99478,136598,98587,93064,90460,99480,91782,92017,91783,91777,95110,95716,92365,131318,131312,98586,104674,93059,104677,98584,92030,127795,93062,92461,92031,92465,91357,92462,92367,93063,95702,93065,97069,93066,92464,123544,93058,97078,189132,104676,91356,96730,97156,123546,104675,92463,95107,131316,131320,95072,93054,104673,127897,97071,136415,93061)) and (`goimagine`.`discussion`.`object_type` = 'P'))",
            "cost_info": {
              "read_cost": "90.11",
              "eval_cost": "5.70",
              "prefix_cost": "95.81",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "thread_id",
              "object_id",
              "object_type",
              "type"
            ]
          }
        },
        {
          "table": {
            "table_name": "discussion_posts",
            "access_type": "ref",
            "possible_keys": [
              "thread_id",
              "thread_id_2"
            ],
            "key": "thread_id_2",
            "used_key_parts": [
              "thread_id",
              "status"
            ],
            "key_length": "6",
            "ref": [
              "goimagine.discussion.thread_id",
              "const"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 100,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "14.26",
              "eval_cost": "10.02",
              "prefix_cost": "120.09",
              "data_read_per_join": "43K"
            },
            "used_columns": [
              "post_id",
              "thread_id",
              "status"
            ]
          }
        },
        {
          "table": {
            "table_name": "discussion_rating",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "thread_id"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "post_id"
            ],
            "key_length": "3",
            "ref": [
              "goimagine.discussion_posts.post_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 100,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "25.05",
              "eval_cost": "10.02",
              "prefix_cost": "155.15",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "rating_value",
              "post_id",
              "thread_id"
            ],
            "attached_condition": "<if>(is_not_null_compl(discussion_rating), ((`goimagine`.`discussion_rating`.`thread_id` = `goimagine`.`discussion`.`thread_id`) and (`goimagine`.`discussion_rating`.`rating_value` <> 0)), true)"
          }
        }
      ]
    }
  }
}

Result

product_id average_rating discussion_type discussion_thread_id
90460 D 580214
91356 D 652622
91357 D 652623
91777 D 653082
91782 D 653087
91783 D 653088
92017 D 653345
92030 D 653359
92031 D 653360
92365 D 653711
92367 D 653713
92461 D 653817
92462 D 653818
92463 D 653819
92464 D 653820
92465 D 653821
93054 D 689152
93058 D 699072
93059 D 699073
93061 D 699075
93062 D 699076
93063 D 699077
93064 D 699078
93065 D 699079
93066 D 699080
95072 D 701109
95107 D 701145
95110 D 701148
95114 D 701152
95702 D 701770
95716 D 701784
96730 D 702829
97069 D 703183
97071 D 703185
97078 D 703192
97156 D 703297
98584 D 704817
98586 D 704820
98587 D 704821
99478 D 705766
99480 D 705768
104673 D 741025
104674 D 741026
104675 D 741027
104676 D 741028
104677 D 741029
123544 D 779607
123546 D 779609
127795 D 784052
127897 D 784154
131312 D 798081
131316 D 798085
131318 D 798087
131320 D 798089
136415 D 843410
136598 D 843608
189132 D 1415654