SELECT 
  cscart_products.*, 
  cscart_product_descriptions.*, 
  MIN(
    IF(
      cscart_product_prices.percentage_discount = 0, 
      cscart_product_prices.price, 
      cscart_product_prices.price - (
        cscart_product_prices.price * cscart_product_prices.percentage_discount
      )/ 100
    )
  ) as price, 
  GROUP_CONCAT(
    CASE WHEN (
      cscart_products_categories.link_type = 'M'
    ) THEN CONCAT(
      cscart_products_categories.category_id, 
      'M'
    ) ELSE cscart_products_categories.category_id END 
    ORDER BY 
      cscart_categories.storefront_id IN (0, 1) DESC, 
      (
        cscart_products_categories.link_type = 'M'
      ) DESC, 
      cscart_products_categories.category_position ASC, 
      cscart_products_categories.category_id ASC
  ) as category_ids, 
  GROUP_CONCAT(
    CASE WHEN (
      cscart_products_tag_categories.link_type = 'M'
    ) THEN CONCAT(
      cscart_products_tag_categories.category_id, 
      'M'
    ) ELSE cscart_products_tag_categories.category_id END 
    ORDER BY 
      cscart_categories.storefront_id IN (0, 1) DESC, 
      (
        cscart_products_tag_categories.link_type = 'M'
      ) DESC, 
      cscart_products_tag_categories.category_position ASC, 
      cscart_products_tag_categories.category_id ASC
  ) as category_tag_ids, 
  popularity.total as popularity, 
  companies.company as company_name, 
  cscart_product_sales.amount as sales_amount, 
  cscart_seo_names.name as seo_name, 
  cscart_seo_names.path as seo_path, 
  MIN(point_prices.point_price) as point_price, 
  cscart_product_review_prepared_data.average_rating average_rating, 
  cscart_product_review_prepared_data.reviews_count product_reviews_count, 
  cscart_discussion.type as discussion_type, 
  ps.sold as sold 
FROM 
  cscart_products 
  LEFT JOIN cscart_product_prices ON cscart_product_prices.product_id = cscart_products.product_id 
  AND cscart_product_prices.lower_limit = 1 
  AND cscart_product_prices.usergroup_id IN (0, 0, 1) 
  LEFT JOIN cscart_product_descriptions ON cscart_product_descriptions.product_id = cscart_products.product_id 
  AND cscart_product_descriptions.lang_code = 'vi' 
  LEFT JOIN cscart_companies as companies ON companies.company_id = cscart_products.company_id 
  INNER JOIN cscart_products_categories ON cscart_products_categories.product_id = cscart_products.product_id 
  LEFT JOIN cscart_products_tag_categories ON cscart_products_tag_categories.product_id = cscart_products.product_id 
  INNER JOIN cscart_categories ON cscart_categories.category_id = cscart_products_categories.category_id 
  AND cscart_categories.storefront_id IN (0, 1) 
  AND (
    cscart_categories.usergroup_ids = '' 
    OR FIND_IN_SET(
      0, cscart_categories.usergroup_ids
    ) 
    OR FIND_IN_SET(
      1, cscart_categories.usergroup_ids
    )
  ) 
  AND (
    cscart_products.usergroup_ids = '' 
    OR FIND_IN_SET(
      0, cscart_products.usergroup_ids
    ) 
    OR FIND_IN_SET(
      1, cscart_products.usergroup_ids
    )
  ) 
  AND cscart_categories.status IN ('A', 'H') 
  AND cscart_products.status IN ('A', 'H') 
  LEFT JOIN cscart_product_popularity as popularity ON popularity.product_id = cscart_products.product_id 
  LEFT JOIN cscart_product_sales ON cscart_product_sales.product_id = cscart_products.product_id 
  AND cscart_product_sales.category_id = 412 
  LEFT JOIN cscart_seo_names ON cscart_seo_names.object_id = 15218 
  AND cscart_seo_names.type = 'p' 
  AND cscart_seo_names.dispatch = '' 
  AND cscart_seo_names.lang_code = 'vi' 
  LEFT JOIN cscart_product_point_prices as point_prices ON point_prices.product_id = cscart_products.product_id 
  AND point_prices.lower_limit = 1 
  AND point_prices.usergroup_id IN (0, 0, 1) 
  LEFT JOIN cscart_product_review_prepared_data ON cscart_product_review_prepared_data.product_id = cscart_products.product_id 
  AND cscart_product_review_prepared_data.storefront_id = 0 
  LEFT JOIN cscart_discussion ON cscart_discussion.object_id = cscart_products.product_id 
  AND cscart_discussion.object_type = 'P' 
  LEFT JOIN cscart_product_sold ps ON cscart_products.product_id = ps.product_id 
WHERE 
  cscart_products.product_id = 15218 
  AND (
    companies.status IN ('A') 
    OR cscart_products.company_id = 0
  ) 
GROUP BY 
  cscart_products.product_id

Query time 0.03286

JSON explain

{
  "query_block": {
    "select_id": 1,
    "nested_loop": [
      {
        "table": {
          "table_name": "point_prices",
          "access_type": "system",
          "possible_keys": ["unique_key", "src_k"],
          "rows": 0,
          "filtered": 0,
          "const_row_not_found": true
        }
      },
      {
        "table": {
          "table_name": "cscart_products",
          "access_type": "const",
          "possible_keys": ["PRIMARY", "status"],
          "key": "PRIMARY",
          "key_length": "3",
          "used_key_parts": ["product_id"],
          "ref": ["const"],
          "rows": 1,
          "filtered": 100
        }
      },
      {
        "table": {
          "table_name": "popularity",
          "access_type": "const",
          "possible_keys": ["PRIMARY", "total"],
          "key": "PRIMARY",
          "key_length": "3",
          "used_key_parts": ["product_id"],
          "ref": ["const"],
          "rows": 1,
          "filtered": 100
        }
      },
      {
        "table": {
          "table_name": "cscart_product_sales",
          "access_type": "const",
          "possible_keys": ["PRIMARY", "pa"],
          "key": "PRIMARY",
          "key_length": "6",
          "used_key_parts": ["category_id", "product_id"],
          "ref": ["const", "const"],
          "rows": 0,
          "filtered": 0,
          "unique_row_not_found": true
        }
      },
      {
        "table": {
          "table_name": "cscart_product_review_prepared_data",
          "access_type": "const",
          "possible_keys": ["PRIMARY"],
          "key": "PRIMARY",
          "key_length": "7",
          "used_key_parts": ["product_id", "storefront_id"],
          "ref": ["const", "const"],
          "rows": 1,
          "filtered": 100
        }
      },
      {
        "table": {
          "table_name": "cscart_discussion",
          "access_type": "const",
          "possible_keys": ["object_id"],
          "key": "object_id",
          "key_length": "6",
          "used_key_parts": ["object_id", "object_type"],
          "ref": ["const", "const"],
          "rows": 1,
          "filtered": 100
        }
      },
      {
        "table": {
          "table_name": "cscart_product_prices",
          "access_type": "ref",
          "possible_keys": [
            "usergroup",
            "product_id",
            "lower_limit",
            "usergroup_id"
          ],
          "key": "product_id",
          "key_length": "3",
          "used_key_parts": ["product_id"],
          "ref": ["const"],
          "rows": 1,
          "filtered": 99.9960556,
          "attached_condition": "trigcond(cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,0,1))"
        }
      },
      {
        "table": {
          "table_name": "cscart_product_descriptions",
          "access_type": "const",
          "possible_keys": ["PRIMARY", "product_id"],
          "key": "PRIMARY",
          "key_length": "11",
          "used_key_parts": ["product_id", "lang_code"],
          "ref": ["const", "const"],
          "rows": 1,
          "filtered": 100,
          "attached_condition": "trigcond(cscart_product_descriptions.lang_code = 'vi')"
        }
      },
      {
        "table": {
          "table_name": "companies",
          "access_type": "eq_ref",
          "possible_keys": ["PRIMARY"],
          "key": "PRIMARY",
          "key_length": "4",
          "used_key_parts": ["company_id"],
          "ref": ["const"],
          "rows": 1,
          "filtered": 100,
          "attached_condition": "trigcond(companies.`status` = 'A')"
        }
      },
      {
        "table": {
          "table_name": "cscart_products_categories",
          "access_type": "ref",
          "possible_keys": ["PRIMARY", "pt"],
          "key": "pt",
          "key_length": "3",
          "used_key_parts": ["product_id"],
          "ref": ["const"],
          "rows": 2,
          "filtered": 100
        }
      },
      {
        "table": {
          "table_name": "cscart_categories",
          "access_type": "eq_ref",
          "possible_keys": ["PRIMARY", "c_status", "p_category_id"],
          "key": "PRIMARY",
          "key_length": "3",
          "used_key_parts": ["category_id"],
          "ref": ["dev_db.cscart_products_categories.category_id"],
          "rows": 1,
          "filtered": 100,
          "attached_condition": "cscart_categories.storefront_id in (0,1) and (cscart_categories.usergroup_ids = '' or find_in_set(0,cscart_categories.usergroup_ids) or find_in_set(1,cscart_categories.usergroup_ids)) and cscart_categories.`status` in ('A','H')"
        }
      },
      {
        "table": {
          "table_name": "cscart_products_tag_categories",
          "access_type": "ref",
          "possible_keys": ["pt"],
          "key": "pt",
          "key_length": "3",
          "used_key_parts": ["product_id"],
          "ref": ["const"],
          "rows": 22,
          "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` = 'p' and cscart_seo_names.dispatch = '' and cscart_seo_names.lang_code = 'vi')"
        }
      },
      {
        "block-nl-join": {
          "table": {
            "table_name": "<derived2>",
            "access_type": "ALL",
            "rows": 12918,
            "filtered": 100,
            "attached_condition": "ps.product_id = 15218"
          },
          "buffer_type": "flat",
          "buffer_size": "255Kb",
          "join_type": "BNL",
          "attached_condition": "trigcond(ps.product_id = 15218)",
          "materialized": {
            "query_block": {
              "select_id": 2,
              "filesort": {
                "sort_key": "count(cscart_order_details.product_id) desc",
                "temporary_table": {
                  "nested_loop": [
                    {
                      "table": {
                        "table_name": "cscart_order_details",
                        "access_type": "index",
                        "key": "o_k",
                        "key_length": "6",
                        "used_key_parts": ["order_id", "product_id"],
                        "rows": 12918,
                        "filtered": 100,
                        "using_index": true
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      }
    ]
  }
}

Result

product_id product_code product_type status company_id list_price amount weight length width height shipping_freight low_avail_limit timestamp updated_timestamp usergroup_ids is_edp edp_shipping unlimited_download tracking free_shipping zero_price_action is_pbp is_op is_oper is_returnable return_period is_make_to_order make_period avail_since out_of_stock_actions localization min_qty max_qty qty_step list_qty_count tax_ids age_verification age_limit options_type exceptions_type details_layout shipping_params facebook_obj_type parent_product_id buy_now_url is_stock_split_by_warehouses is_fragile lang_code product shortname short_description full_description meta_keywords meta_description search_words page_title age_warning_message promo_text specification special_note punch_line selection chus_note about_brand why_chus purchasing_notice note_from_brand is_sync_seo_url price category_ids category_tag_ids popularity company_name sales_amount seo_name seo_path point_price average_rating product_reviews_count discussion_type sold
15218 10528_10 P A 469 0 999 1000.000 0 0 0 0.00 0 1663864735 1729132972 0 N N N B N N N N Y 10 N - 0 N N 0 default a:5:{s:16:"min_items_in_box";i:1;s:16:"max_items_in_box";i:1;s:10:"box_length";i:30;s:9:"box_width";i:30;s:10:"box_height";i:10;} 0 N Y vi Hộp Quà Relaxing Time, Quà Tặng Thư Giãn, Giảm Stress, Thiết Kế Tinh Tế, Thành Phần An Toàn <p>Hãy để không gian tràn ngập hương thơm dễ chịu với dòng nến thơm thủ công từ The Joy Box trong Hộp Quà Relaxing Time. Mùi hương dịu nhẹ từ nến thơm sẽ giúp căn phòng trở nên ấm áp và giúp xua tan đi những căng thẳng, mệt mỏi của ngày dài. Bên cạnh đó, hộp quà còn có một lọ diêm rất dễ thương. Ắt hẳn những ai nhận được hộp quà này cũng sẽ cảm thấy cuộc sống thật tươi đẹp và tràn đầy năng lượng.</p> Hãy để The Joy Box mang đến cho bạn và người thương những giây phút thư giãn tuyệt vời với Hộp Quà Relaxing Time. , Relaxing Time Gift Set, Relaxing Gift Set, Soy Candle, Soap Flower, Birthday Gift, Self-Care Gift, Anniversary Gift, Perfect Present For Anyone Hộp Quà Relaxing Time <p>1. Kích thước hộp: 25 x 25 x 5cm</p> <p>2. Hộp quà bao gồm:</p> <p>- Nến thơm hũ thủy tinh</p> <p>- Lọ diêm thủy tinh</p> <p>- Hoa sáp vĩnh cửu</p> <p>3. Thành phần nến: Sáp đậu nành, bấc cotton hoặc bấc gỗ, tinh dầu thiên nhiên</p> Ý Tưởng Quà Tặng | Dịp Đặc Biệt | Sức Khỏe | Sống Khỏe | Chữa Lành | Thư Giãn | Tinh Dầu | Sáp Tự Nhiên <p>1. Dusty Rose: mùi Dune Rose (hoa hồng đất), ngọt ngào và vô cùng nữ tính. Nến thơm mang những nốt hương nhẹ nhàng, sang trọng cực kỳ thích hợp làm quà tặng cho phái đẹp.</p> <p>2. Joyful Time: là một “bản hợp âm” tinh tế giữa White tea (bạch trà) &amp; Musk (xạ hương) mang đến cảm giác thanh lịch, dịu dàng nhưng vô cùng quyến rũ.</p> <p>3. Afternoon Tea: với tone mùi chính là Chai tea (trà chai Ấn Độ) - thức uống nổi tiếng pha từ trà đen cùng các loại gia vị quế, tiêu, hồi…, Afternoon tea mang đến cho bạn không khí nồng nhiệt của buổi trà chiều cùng với chút ấm áp từ những tia nắng cuối ngày.</p> <p>4. Chillin’ Night: cùng tận hưởng một buổi tối thật dễ chịu và thư thái với hương thơm oải hương và herb thảo mộc. Giúp bạn giải tỏa căng thẳng và nhanh chóng rơi vào giấc ngủ thật ngon.</p> <p>5. Love: mang đến “một bản tình ca” nhẹ nhàng với hương hoa hồng phảng phất hương giấm đỏ thanh thanh tạo nên sự độc đáo và tinh khôi như mùi nắng sớm.</p> <p>6. Fresh Blooms: có tone mùi ngọt ngào, tươi mới. Là sự hòa quyện của hương Cherry Blossom (hoa anh đào) cùng Fresh cut grass (mùi cỏ mới), Fresh Bloom như một khu vườn mùa xuân đầy sức sống.</p> <p>Hộp quà phù hợp để dành tặng những cô nàng mơ mộng, hoặc bất kỳ ai thích chìm đắm trong hương thơm của nến thơm tự nhiên.</p> <p>Mỗi món quà là một niềm vui dành cho người nhận, cũng như tình cảm và sự trân trọng của người gửi trao. Hiểu được ý nghĩa ấy, The Joy Box đã ra đời, như một cầu nối giúp bạn trao gửi lời yêu thương thông qua món an lành và giàu ý nghĩa. Thương hiệu hy vọng thông qua những sản phẩm của mình, cả người gửi lẫn người nhận đều sẽ nhận được những niềm vui trong cuộc sống, để thấy cuộc sống thật đẹp và tràn ngập những điều tích cực.</p> <p>Từng sản phẩm đều được thương hiệu tuyển chọn, mang giá trị về sức khỏe, an toàn và giúp phần nào xoa dịu tinh thần. Mỗi hộp còn có chủ đề riêng và thiết kế phù hợp cho nhiều đối tượng khác nhau. Vì vậy, bạn có thể dễ dàng lựa chọn, giúp tiết kiệm thời gian và công sức.</p> <p>Tại The Joy Box, bạn sẽ được biết thêm về các sản phẩm thiên nhiên được làm bởi các thương hiệu địa phương cùng những sản phẩm mà The Joy Box tự tay làm ra. Những món quà vừa hợp túi tiền vừa tinh tế sẽ cho bạn và người thân yêu một trải nghiệm trao-nhận thêm trọn vẹn, hoàn hảo.</p> a:4:{s:17:"rs_brand_producer";a:5:{i:0;s:61:"Hộp quà tặng gồm sản phẩm tự nhiên thủ công";i:1;s:93:"Các món quà được tuyển chọn có phong cách và màu sắc theo chủ đề riêng";i:2;s:97:"Giúp tiết kiệm thời gian chọn lựa quà mà vẫn đảm bảo ý nghĩa và giá trị";i:3;s:84:"Tạo yếu tố bất ngờ và trải nghiệm khó quên cho người nhận quà";i:4;s:0:"";}s:14:"rs_ingredients";a:5:{i:0;s:116:"Sáp đậu nành, bấc cotton hoặc bấc nến, tinh dầu thiên nhiên, trà hoa, muối hồng, mật ong,...";i:1;s:0:"";i:2;s:0:"";i:3;s:0:"";i:4;s:0:"";}s:14:"rs_manufacture";a:5:{i:0;s:11:"Thủ công";i:1;s:0:"";i:2;s:0:"";i:3;s:0:"";i:4;s:0:"";}s:17:"rs_certifications";a:5:{i:0;s:0:"";i:1;s:0:"";i:2;s:0:"";i:3;s:0:"";i:4;s:0:"";}} <p>1. Điều kiện đổi trả</p> <p>Quý khách có thể đổi trả hàng trong các trường hợp sau:</p> <p>- Hộp quà bị hư hại, móp méo nặng nề, bị rách, ướt... trong quá trình vận chuyển.</p> <p>- Sau khi mở hộp quà, món quà bị vỡ, bể, rách, không đủ số lượng hoặc mẫu mã như thông tin trên web hoặc như thỏa thuận ban đầu.</p> <p>- Một số món quà khi hết hàng, The Joy Box sẽ thay đổi màu sắc, kiểu dáng hoặc loại hàng ngang giá cho quý khách. Chúng tôi sẽ thông báo qua email/ điện thoại cho Quý khách trước khi gửi hộp quà.</p> <p>Khách hàng gửi hình ảnh tình trạng hộp quà hoặc món hàng sau khi unbox, chứng minh sự thiếu sót trên để hoàn thành việc hoàn trả/đổi trả hàng hóa.</p> <p>2. Quy định về thời gian thông báo và gửi sản phẩm đổi trả:</p> <p>- Thời gian thông báo đổi trả: trong vòng 7 ngày kể từ khi nhận sản phẩm đối với trường hợp sản phẩm thiếu quà tặng hoặc bể vỡ.</p> <p>- Thời gian gửi chuyển trả sản phẩm: trong vòng 14 ngày kể từ khi nhận sản phẩm.</p> <p>Địa điểm đổi trả sản phẩm: khách hàng có thể mang hàng trực tiếp đến cửa hàng The Joy Box hoặc thương hiệu sẽ hỗ trợ bạn chuyển hoàn đơn hàng.</p> 1 450000.0000 412M,412M,412M,412M,412M,412M,412M,412M,412M,412M,412M,412M,412M,412M,412M,412M,412M,412M,412M,412M,412M,412M,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169 418M,418M,416,416,420,420,421,421,430,430,434,434,438,438,444,444,445,445,450,450,452,452,453,453,460,460,478,478,491,491,492,492,500,500,504,504,508,508,512,512,514,514,515,515 14835 The Joy Box hop-qua-relaxing-time 412 0 D 2