SELECT 
  tmall_discussion_rating.rating_value, 
  COUNT(
    tmall_discussion_rating.post_id
  ) as qty 
FROM 
  tmall_discussion_posts 
  LEFT JOIN tmall_discussion_messages ON tmall_discussion_messages.post_id = tmall_discussion_posts.post_id 
  LEFT JOIN tmall_discussion_rating ON tmall_discussion_rating.post_id = tmall_discussion_posts.post_id 
WHERE 
  tmall_discussion_posts.thread_id = 2 
  AND tmall_discussion_posts.status = 'A' 
GROUP BY 
  tmall_discussion_rating.rating_value

Query time 0.00882

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost": 0.008184669,
    "filesort": {
      "sort_key": "tmall_discussion_rating.rating_value",
      "temporary_table": {
        "nested_loop": [
          {
            "table": {
              "table_name": "tmall_discussion_posts",
              "access_type": "ref",
              "possible_keys": ["thread_id", "thread_id_2"],
              "key": "thread_id",
              "key_length": "3",
              "used_key_parts": ["thread_id"],
              "ref": ["const"],
              "loops": 1,
              "rows": 2,
              "cost": 0.00325828,
              "filtered": 100,
              "attached_condition": "tmall_discussion_posts.`status` = 'A'"
            }
          },
          {
            "table": {
              "table_name": "tmall_discussion_rating",
              "access_type": "eq_ref",
              "possible_keys": ["PRIMARY"],
              "key": "PRIMARY",
              "key_length": "3",
              "used_key_parts": ["post_id"],
              "ref": ["tmall.tmall_discussion_posts.post_id"],
              "loops": 2,
              "rows": 1,
              "cost": 0.003662852,
              "filtered": 100
            }
          }
        ]
      }
    }
  }
}

Result

rating_value qty
2 1
5 1