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, 
  cscart_discussion.type as discussion_type, 
  cscart_product_review_prepared_data.average_rating average_rating, 
  cscart_product_review_prepared_data.reviews_count product_reviews_count, 
  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 = 169 
  LEFT JOIN cscart_seo_names ON cscart_seo_names.object_id = 23047 
  AND cscart_seo_names.type = 'p' 
  AND cscart_seo_names.dispatch = '' 
  AND cscart_seo_names.lang_code = 'vi' 
  LEFT JOIN cscart_discussion ON cscart_discussion.object_id = cscart_products.product_id 
  AND cscart_discussion.object_type = 'P' 
  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_product_sold ps ON cscart_products.product_id = ps.product_id 
WHERE 
  cscart_products.product_id = 23047 
  AND (
    companies.status IN ('A') 
    OR cscart_products.company_id = 0
  ) 
GROUP BY 
  cscart_products.product_id

Query time 0.02304

JSON explain

{
  "query_block": {
    "select_id": 1,
    "nested_loop": [
      {
        "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_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": 100,
          "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": 3,
          "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": 11,
          "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": 2,
          "filtered": 100,
          "attached_condition": "trigcond(cscart_seo_names.`type` = 'p' and cscart_seo_names.dispatch = '' and cscart_seo_names.lang_code = 'vi')"
        }
      },
      {
        "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,
          "attached_condition": "trigcond(cscart_discussion.object_type = 'P')"
        }
      },
      {
        "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
        }
      },
      {
        "block-nl-join": {
          "table": {
            "table_name": "<derived2>",
            "access_type": "ALL",
            "rows": 12545,
            "filtered": 100,
            "attached_condition": "ps.product_id = 23047"
          },
          "buffer_type": "flat",
          "buffer_size": "256Kb",
          "join_type": "BNL",
          "attached_condition": "trigcond(ps.product_id = 23047)",
          "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": 12545,
                        "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 discussion_type average_rating product_reviews_count sold
23047 10212_9FC0 P A 206 0 999 500.000 0 0 0 0.00 0 1663870227 1726252667 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:15;s:9:"box_width";i:15;s:10:"box_height";i:15;} 0 N N vi Nến Thơm Cupcake <p>Thêm chút dễ thương và tinh nghịch cho không gian sống với sản phẩm nến thơm Cupcake từ ADORA.</p> <p>ADORA đã đặc biệt tạo hình sản phẩm này như những chiếc bánh cupcake xinh xắn và thơm ngon. Thiết kế đáng yêu này phù hợp để bạn trang trí cho căn phòng hoặc những bữa tiệc quan trọng thêm phần đáng yêu và sống động.</p> <p>Thành phần tinh dầu tự nhiên giúp sản phẩm có mùi hương ngọt ngào dễ chịu, giúp xoa dịu tinh thần nhanh chóng và đặc biệt mang đến không gian tươi mát, đầy thoải mái.</p> nến thơm cupcake, adora, chus, mua online, quà tặng, nến thơm, nến thơm thủ công, đồ thủ công, quà tặng người thân, quà tặng bạn bè, quà tặng sinh nhật, tinh dầu tự nhiên, thành phần thiên nhiên Chút dễ thương và tinh nghịch cho không gian sống với nến thơm Cupcake từ ADORA. Thiết kế đáng yêu, mùi hương ngọt ngào dành tặng bạn gái. Mua tại Chus. , Cupcake Scented Candle Nến Thơm Cupcake - ADORA - Chus <p>- Kích thước: 7.8 x 7.8 x 2.8cm</p> <p>- Màu: Trắng</p> <p>- Trọng lượng: 40gr</p> <p>- Thành phần: Sáp đậu nành, tinh dầu thiên nhiên, bấc nến cotton, hoa khô</p> <p>- Thời gian đốt: 8 giờ</p> <p>CÁC LƯU Ý KHI SỬ DỤNG:</p> <p>1. Khi thắp nến:</p> <p>+ Quan sát độ dài bấc nến, lý tưởng nhất là từ 0,4 – 0,6 cm để ngừa khói đen hoặc trắng độc hại bốc lên không khí và lên thành ly/cốc</p> <p>+ Trong trường hợp khi đang thắp, bấc nến quá dài thì bạn hãy tắt nến rồi cắt bớt bấc, sau đó lại thắp lên.</p> <p>2. Đốt nến liên tục ít nhất 1 giờ:</p> <p>+ Nếu đốt nến quá nhanh rồi tắt, bề mặt nến chưa kịp hoá lỏng hết, mà chỉ khu vực xung quanh tim nến thôi. Sau vài lần dùng như vậy, tim nến sẽ bị lõm xuống, rồi phần sáp nến viền ly cao hơn, dễ bị sụp và che cả tim nến.</p> <p>+ Trong quá trình sử dụng, nhớ theo dõi cho tới khi lớp sáp nến ở trong cốc tan đều (khoảng 1-2 tiếng).</p> <p>3. Không đốt nến quá 3 giờ liên tục:</p> <p>+ Không đốt nến quá 3 tiếng liên tục vì có thể gây ra một số rủi ro như bể ly thuỷ tinh, lửa cháy to vì tim nến cực cao, tốc độ bay hơi càng ngày càng nhanh làm giảm tuổi thọ của nến (thời gian đốt nến giảm từ 30 giờ xuống còn 15 giờ).</p> <p>+ Tốt nhất hãy đốt sau mỗi 4 tiếng. Không đốt nến trong không gian kín quá hoặc để nến trước quạt máy vì sẽ làm giảm tuổi thọ của sáp.</p> <p>+ Luôn chừa lại 1 lớp sáp mỏng tối thiểu 0.5cm để đảm bảo bấc không cháy tận đáy ly.</p> <p>4. Khi tắt nến:</p> <p>Tuyệt đối đừng nên thổi để tắt nến vì nó sẽ gây ra khí cacbonic gây ảnh hưởng đến sức khỏe và còn làm cho nến có mùi khói lấn át mùi tinh dầu.</p> Nến Thơm | Hoa Khô | Liệu Pháp Thư Giãn | Tinh Dầu Thiên Nhiên <p>1. Orange Cinnamon:</p> <p>- Tông mùi: tươi mát, cay nhẹ</p> <p>- Cay nồng với hương quế hòa quyện chút tươi mát của cam ngọt tạo cảm giác nhẹ nhàng, thoải mái, thư giãn, đồng thời thanh lọc không khí, giúp căn phòng tươi mới và thanh khiết hơn.</p> <p>2. Sweet Dream:</p> <p>- Tông mùi: ngọt dịu, nồng nàn</p> <p>- Ngọc lan tây nhẹ nhàng hòa quyện với oải hương nồng nàn, cùng chút vani ngọt ngào và trà xanh thanh mát khiến tinh thần sảng khoái, đưa bạn vào giấc ngủ dễ dàng hơn.</p> <p>3. Lavender</p> <p>- Tông mùi: tươi mát, thanh tao</p> <p>- Hương thơm thanh thoát, lãng mạn khiến bạn cảm tưởng như đang thư giãn giữa cánh đồng hoa oải hương nơi nước Pháp, giúp thư giãn tinh thần và ngủ ngon hơn.</p> <p>4. Charming Amber</p> <p>- Tông mùi: quyến rũ, lãng mạn</p> <p>- Mùi hương ngọt ngào, thanh tao của Cam Bergamot và hoa Violet cùng chút nồng ấm bí ẩn mà đầy quyến rũ của Hổ Phách, pha chút ấm áp của Gỗ Tuyết Tùng, tạo nên hương thơm quyến rũ, cho không gian thêm phần lãng mạn. Sản phẩm đặc biệt dành riêng cho những dịp đặc biệt của các cặp đôi.</p> <p>Hương thơm của nến tinh dầu trong không gian riêng tư tĩnh lặng sẽ là trợ thủ đắc lực cho bạn khi làm việc, học tập, đọc sách hay thiền và tập yoga. Một chiếc nến thơm đáng yêu trên bàn học hay bàn làm việc lại càng tăng tinh thần và cảm hứng cho công việc.</p> <p>Vốn là một nhân viên văn phòng, nhà sáng lập ADORA đã từng phải chịu nhiều áp lực và căng thẳng trong công việc. Cô tình cờ biết đến khả năng chữa lành diệu kỳ của liệu pháp mùi hương. Từ đó, ý tưởng về ADORA cũng ra đời.</p> <p>ADORA chuyên cung cấp các sản phẩm nến thơm với thành phần thiên nhiên và có nguồn gốc từ Việt Nam.</p> <p>Sau quá trình nghiên cứu và tìm hiểu về các dòng nến thơm, nhà sáng lập ADORA nhận ra rằng các loại nến thơm tinh dầu đa phần được nhập khẩu với giá thành cao. Do vậy, việc tiếp cận với các sản phẩm nến thơm chất lượng trở nên khó khăn với nhiều người có mức thu nhập trung bình. Bên cạnh đó, Việt Nam có đủ khả năng để sản xuất ra các loại tinh dầu thiên nhiên chất lượng và an toàn.</p> <p>Chính vì lẽ đó, ADORA đã quyết định hợp tác với những nhà sản xuất tinh dầu thiên nhiên trong nước để có thể sản xuất ra sản phẩm với mức giá phù hợp với đại đa số khách hàng. Bất kỳ ai khi đến với ADORA đều có thể dễ dàng chọn cho mình sản phẩm phù hợp để chăm sóc và nuôi dưỡng sức khỏe tinh thần một cách hiệu quả.</p> <p>&nbsp;</p> a:4:{s:17:"rs_brand_producer";a:5:{i:0;s:164:"Thương hiệu sản xuất những chế phẩm tạo mùi hương như nến thơm, sáp thơm có chứa tinh dầu thiên nhiên với giá cả phải chăng.";i:1;s:61:"Ủng hộ sản phẩm tinh dầu thiên nhiên nội địa";i:2;s:0:"";i:3;s:0:"";i:4;s:0:"";}s:14:"rs_ingredients";a:5:{i:0;s:87:"Những nguyên liệu trong tự nhiên, lành tính và an toàn với môi trường";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:189:"Nguồn cung cấp là những nhà sản xuất Tinh dầu tự nhiên có sẵn trong nước để mang đến mức giá phù hợp và thúc đẩy phát triển kinh tế nước nhà";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:"";}} 1 95000.0000 169M,169M,169M,169M,169M,169M,169M,169M,169M,169M,169M,210,210,210,210,210,210,210,210,210,210,210,212,212,212,212,212,212,212,212,212,212,212 449M,449M,449M,418,418,418,420,420,420,421,421,421,445,445,445,452,452,452,453,453,453,460,460,460,467,467,467,478,478,478,491,491,491 55449 ADORA nen-thom-cupcake 101/169 D 5.00 1