SELECT 
  company_descriptions.*, 
  companies.*, 
  cscart_vendor_plan_descriptions.plan, 
  cscart_seo_names.name as seo_name, 
  cscart_seo_names.path as seo_path, 
  CAST(
    AVG(`prd`.`average_rating`) AS DECIMAL(10, 2)
  ) AS average_rating, 
  prd.reviews_count product_reviews_count 
FROM 
  cscart_companies AS companies 
  LEFT JOIN cscart_company_descriptions AS company_descriptions ON company_descriptions.company_id = companies.company_id 
  AND company_descriptions.lang_code = 'vi' 
  LEFT JOIN cscart_vendor_plan_descriptions ON companies.plan_id = cscart_vendor_plan_descriptions.plan_id 
  AND cscart_vendor_plan_descriptions.lang_code = 'vi' 
  LEFT JOIN cscart_seo_names ON cscart_seo_names.object_id = 571 
  AND cscart_seo_names.type = 'm' 
  AND cscart_seo_names.dispatch = '' 
  AND cscart_seo_names.lang_code = 'vi' 
  LEFT JOIN cscart_products p ON p.company_id = companies.company_id 
  LEFT JOIN cscart_product_review_prepared_data prd ON p.product_id = prd.product_id 
WHERE 
  companies.company_id = 571

Query time 0.03170

JSON explain

{
  "query_block": {
    "select_id": 1,
    "const_condition": "1",
    "nested_loop": [
      {
        "table": {
          "table_name": "companies",
          "access_type": "const",
          "possible_keys": ["PRIMARY"],
          "key": "PRIMARY",
          "key_length": "4",
          "used_key_parts": ["company_id"],
          "ref": ["const"],
          "rows": 1,
          "filtered": 100
        }
      },
      {
        "table": {
          "table_name": "company_descriptions",
          "access_type": "const",
          "possible_keys": ["PRIMARY"],
          "key": "PRIMARY",
          "key_length": "10",
          "used_key_parts": ["company_id", "lang_code"],
          "ref": ["const", "const"],
          "rows": 1,
          "filtered": 100
        }
      },
      {
        "table": {
          "table_name": "cscart_vendor_plan_descriptions",
          "access_type": "const",
          "possible_keys": ["PRIMARY"],
          "key": "PRIMARY",
          "key_length": "10",
          "used_key_parts": ["plan_id", "lang_code"],
          "ref": ["const", "const"],
          "rows": 1,
          "filtered": 100
        }
      },
      {
        "table": {
          "table_name": "cscart_seo_names",
          "access_type": "ref",
          "possible_keys": ["PRIMARY", "dispatch"],
          "key": "PRIMARY",
          "key_length": "206",
          "used_key_parts": ["object_id", "type", "dispatch", "lang_code"],
          "ref": ["const", "const", "const", "const"],
          "rows": 1,
          "filtered": 100,
          "attached_condition": "trigcond(cscart_seo_names.`type` = 'm' and cscart_seo_names.dispatch = '' and cscart_seo_names.lang_code = 'vi')"
        }
      },
      {
        "block-nl-join": {
          "table": {
            "table_name": "p",
            "access_type": "ALL",
            "rows": 25270,
            "filtered": 100,
            "attached_condition": "p.company_id = 571"
          },
          "buffer_type": "flat",
          "buffer_size": "18Kb",
          "join_type": "BNL",
          "attached_condition": "trigcond(p.company_id = 571)"
        }
      },
      {
        "table": {
          "table_name": "prd",
          "access_type": "ref",
          "possible_keys": ["PRIMARY"],
          "key": "PRIMARY",
          "key_length": "3",
          "used_key_parts": ["product_id"],
          "ref": ["dev_db.p.product_id"],
          "rows": 562,
          "filtered": 100,
          "attached_condition": "trigcond(trigcond(p.product_id is not null))"
        }
      }
    ]
  }
}

Result

company_id lang_code company_description terms status company company_search address city city_id district_id ward_id state country zipcode email phone url storefront secure_storefront entry_page redirect_customer countries_list timestamp shippings logos request_user_id request_account_name request_account_data tax_number pre_moderation pre_moderation_edit pre_moderation_edit_vendors plan_id suspend_date grace_period_start last_time_suspended last_debt_notification_time paypal_commerce_platform_account_id stripe_connect_account_id stripe_connect_account_type sended_email_notify ghn_shop_id verify show_homepage messenger messenger_flag plan seo_name seo_path average_rating product_reviews_count
571 vi <p><span style="font-weight:400;">Boutique 29 là nơi để chị Trà Giang thỏa mãn đam mê tạo ra và chia sẻ những món đồ đan móc bé xinh. Đó là những chiếc lót ly hoặc quai đựng ly bằng len cotton mềm mại. Những sản phẩm tại Boutique 29 đều mang phong cách trẻ trung, nổi bật nhờ thiết kế mới lạ và màu sắc tươi sáng. Tất cả được làm thủ công thật khéo léo để bạn không chỉ có thể sử dụng hằng ngày, mà còn thể hiện được gu thẩm mỹ của bản thân. </span></p> <p><span style="font-weight:400;">Cơ duyên để Boutique 29 thành lập chỉ đơn giản là khi chị Trà Giang sử dụng chiếc quai đựng ly bằng len mình tự làm và đến quán nước. Qua câu ngỏ lời mua lại chiếc quai đeo của bạn nhân viên, chị nhận ra rằng mình hoàn toàn có thể kinh doanh với chính những sản phẩm thủ công bằng len này. Những chiếc lót ly hay quai đựng tại đây sẽ là lựa chọn quà tặng hoàn hảo cho bạn bè hoặc bất kỳ ai thân thiết nhờ vào giá trị thủ công cũng như tính cá nhân cao của chúng.</span></p> <p><span style="font-weight:400;">Ngoài ra, sử dụng đồ dùng bằng len cotton cũng là một cách để giảm thiểu khối lượng nhựa. Trong khi đó, những chiếc quai đựng ly còn giúp hạn chế quai nhựa dùng một lần, giúp bảo vệ môi trường.</span></p> A BOUTIQUE 29 BOUTIQUE 29 TP Bank, 180 Nam Kì Khởi Nghĩa, P. 6, Quan 3 79 770 27139 tragiangle29@gmail.com 0911809419 none Y 1664500876 6,4 0 N N N 1 0 0 0 0 0 5081785 N N A Y Hoa hồng người bán boutique-29 5.00 0