SELECT 
  products.*, 
  product_descriptions.*, 
  MIN(
    IF(
      product_prices.percentage_discount = 0, 
      product_prices.price, 
      product_prices.price - (
        product_prices.price * product_prices.percentage_discount
      )/ 100
    )
  ) as price, 
  GROUP_CONCAT(
    CASE WHEN (
      products_categories.link_type = 'M'
    ) THEN CONCAT(
      products_categories.category_id, 
      'M'
    ) ELSE products_categories.category_id END 
    ORDER BY 
      categories.storefront_id IN (0, 1) DESC, 
      (
        products_categories.link_type = 'M'
      ) DESC, 
      products_categories.category_position ASC, 
      products_categories.category_id ASC
  ) as category_ids, 
  popularity.total as popularity, 
  company_descr.i18n_company as company_name, 
  cd.terms, 
  seo_names.name as seo_name, 
  seo_names.path as seo_path, 
  company_descriptions.company_description, 
  discussion.type as discussion_type 
FROM 
  products 
  LEFT JOIN product_prices ON product_prices.product_id = products.product_id 
  AND product_prices.lower_limit = 1 
  AND product_prices.usergroup_id IN (0, 0, 1) 
  LEFT JOIN product_descriptions ON product_descriptions.product_id = products.product_id 
  AND product_descriptions.lang_code = 'en' 
  LEFT JOIN company_descriptions as company_descr ON company_descr.company_id = products.company_id 
  AND company_descr.lang_code = 'en' 
  LEFT JOIN companies as companies ON companies.company_id = products.company_id 
  INNER JOIN products_categories ON products_categories.product_id = products.product_id 
  INNER JOIN categories ON categories.category_id = products_categories.category_id 
  AND categories.storefront_id IN (0, 1) 
  AND (
    categories.usergroup_ids = '' 
    OR FIND_IN_SET(0, categories.usergroup_ids) 
    OR FIND_IN_SET(1, categories.usergroup_ids)
  ) 
  AND (
    products.usergroup_ids = '' 
    OR FIND_IN_SET(0, products.usergroup_ids) 
    OR FIND_IN_SET(1, products.usergroup_ids)
  ) 
  AND categories.status IN ('A', 'H') 
  AND products.status IN ('A', 'H') 
  LEFT JOIN product_popularity as popularity ON popularity.product_id = products.product_id 
  LEFT JOIN company_descriptions AS cd ON cd.company_id = products.company_id 
  AND cd.lang_code = 'en' 
  LEFT JOIN seo_names ON seo_names.object_id = 197351 
  AND seo_names.type = 'p' 
  AND seo_names.dispatch = '' 
  AND seo_names.lang_code = 'en' 
  LEFT JOIN company_descriptions AS company_descriptions ON company_descriptions.company_id = products.company_id 
  AND company_descriptions.lang_code = 'en' 
  LEFT JOIN discussion ON discussion.object_id = products.product_id 
  AND discussion.object_type = 'P' 
WHERE 
  products.product_id = 197351 
  AND (
    companies.status IN ('A') 
    OR products.company_id = 0
  ) 
GROUP BY 
  products.product_id

Query time 0.00337

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "4.53"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "products",
            "access_type": "const",
            "possible_keys": [
              "PRIMARY",
              "status",
              "idx_company_id",
              "idx_usergroup_ids"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "ref": [
              "const"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 1,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.00",
              "eval_cost": "0.10",
              "prefix_cost": "0.00",
              "data_read_per_join": "4K"
            },
            "used_columns": [
              "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",
              "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",
              "weight_lbs",
              "weight_oz",
              "product_tax_code",
              "deleted_at",
              "archived_at",
              "position"
            ]
          }
        },
        {
          "table": {
            "table_name": "popularity",
            "access_type": "const",
            "possible_keys": [
              "PRIMARY",
              "total"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "ref": [
              "const"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 1,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.00",
              "eval_cost": "0.10",
              "prefix_cost": "0.00",
              "data_read_per_join": "32"
            },
            "used_columns": [
              "product_id",
              "total"
            ]
          }
        },
        {
          "table": {
            "table_name": "cd",
            "access_type": "const",
            "possible_keys": [
              "PRIMARY"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "company_id",
              "lang_code"
            ],
            "key_length": "10",
            "ref": [
              "const",
              "const"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 1,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.00",
              "eval_cost": "0.10",
              "prefix_cost": "0.00",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "company_id",
              "lang_code",
              "terms"
            ]
          }
        },
        {
          "table": {
            "table_name": "product_prices",
            "access_type": "ref",
            "possible_keys": [
              "usergroup",
              "product_id",
              "lower_limit",
              "usergroup_id"
            ],
            "key": "product_id",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "ref": [
              "const"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 1,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.32",
              "eval_cost": "0.10",
              "prefix_cost": "0.42",
              "data_read_per_join": "24"
            },
            "used_columns": [
              "product_id",
              "price",
              "percentage_discount",
              "lower_limit",
              "usergroup_id"
            ],
            "attached_condition": "<if>(is_not_null_compl(product_prices), ((`goimagine`.`product_prices`.`lower_limit` = 1) and (`goimagine`.`product_prices`.`usergroup_id` in (0,0,1))), true)"
          }
        },
        {
          "table": {
            "table_name": "product_descriptions",
            "access_type": "const",
            "possible_keys": [
              "PRIMARY",
              "product_id"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "product_id",
              "lang_code"
            ],
            "key_length": "11",
            "ref": [
              "const",
              "const"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 1,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.63",
              "eval_cost": "0.10",
              "prefix_cost": "1.15",
              "data_read_per_join": "5K"
            },
            "used_columns": [
              "product_id",
              "lang_code",
              "product",
              "shortname",
              "short_description",
              "full_description",
              "meta_keywords",
              "meta_description",
              "search_words",
              "page_title",
              "age_warning_message",
              "promo_text",
              "cls_stop_words",
              "how_its_made",
              "custom_header"
            ]
          }
        },
        {
          "table": {
            "table_name": "company_descr",
            "access_type": "const",
            "possible_keys": [
              "PRIMARY"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "company_id",
              "lang_code"
            ],
            "key_length": "10",
            "ref": [
              "const",
              "const"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 1,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.90",
              "eval_cost": "0.10",
              "prefix_cost": "2.16",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "company_id",
              "lang_code",
              "i18n_company"
            ]
          }
        },
        {
          "table": {
            "table_name": "companies",
            "access_type": "const",
            "possible_keys": [
              "PRIMARY"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "company_id"
            ],
            "key_length": "4",
            "ref": [
              "const"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 1,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.68",
              "eval_cost": "0.10",
              "prefix_cost": "2.94",
              "data_read_per_join": "14K"
            },
            "used_columns": [
              "company_id",
              "status"
            ],
            "attached_condition": "<if>(found_match(companies), ((`goimagine`.`companies`.`status` = 'A') or false), true)"
          }
        },
        {
          "table": {
            "table_name": "products_categories",
            "access_type": "ref",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "pt",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "ref": [
              "const"
            ],
            "rows_examined_per_scan": 2,
            "rows_produced_per_join": 2,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.50",
              "eval_cost": "0.20",
              "prefix_cost": "3.64",
              "data_read_per_join": "32"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type",
              "category_position"
            ]
          }
        },
        {
          "table": {
            "table_name": "categories",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "goimagine.products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 0,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "0.50",
              "eval_cost": "0.01",
              "prefix_cost": "4.34",
              "data_read_per_join": "268"
            },
            "used_columns": [
              "category_id",
              "usergroup_ids",
              "status",
              "storefront_id"
            ],
            "attached_condition": "((`goimagine`.`categories`.`storefront_id` in (0,1)) and ((`goimagine`.`categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`goimagine`.`categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`goimagine`.`categories`.`usergroup_ids`))) and (`goimagine`.`categories`.`status` in ('A','H')))"
          }
        },
        {
          "table": {
            "table_name": "seo_names",
            "access_type": "ref",
            "possible_keys": [
              "PRIMARY",
              "dispatch"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "object_id",
              "type",
              "dispatch",
              "lang_code"
            ],
            "key_length": "206",
            "ref": [
              "const",
              "const",
              "const",
              "const"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 0,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.08",
              "eval_cost": "0.01",
              "prefix_cost": "4.43",
              "data_read_per_join": "173"
            },
            "used_columns": [
              "name",
              "object_id",
              "type",
              "dispatch",
              "path",
              "lang_code"
            ]
          }
        },
        {
          "table": {
            "table_name": "company_descriptions",
            "access_type": "const",
            "possible_keys": [
              "PRIMARY"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "company_id",
              "lang_code"
            ],
            "key_length": "10",
            "ref": [
              "const",
              "const"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 0,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.05",
              "eval_cost": "0.01",
              "prefix_cost": "4.49",
              "data_read_per_join": "177"
            },
            "used_columns": [
              "company_id",
              "lang_code",
              "company_description"
            ]
          }
        },
        {
          "table": {
            "table_name": "discussion",
            "access_type": "const",
            "possible_keys": [
              "object_id"
            ],
            "key": "object_id",
            "used_key_parts": [
              "object_id",
              "object_type"
            ],
            "key_length": "6",
            "ref": [
              "const",
              "const"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 0,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.03",
              "eval_cost": "0.01",
              "prefix_cost": "4.53",
              "data_read_per_join": "2"
            },
            "used_columns": [
              "object_id",
              "object_type",
              "type"
            ]
          }
        }
      ]
    }
  }
}

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 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 weight_lbs weight_oz product_tax_code deleted_at archived_at position lang_code product shortname short_description full_description meta_keywords meta_description search_words page_title age_warning_message promo_text cls_stop_words how_its_made custom_header price category_ids popularity company_name terms seo_name seo_path company_description discussion_type
197351 GI-197351-YDB P A 5720 30.00 1 0.125 0 0 0 0.00 0 1647896093 1672432614 0 N N N B N R N N N Y 10 0 N 0 0 0 0 N 0 P F a:5:{s:16:"min_items_in_box";i:0;s:16:"max_items_in_box";i:0;s:10:"box_length";i:0;s:9:"box_width";i:0;s:10:"box_height";i:0;} 0.000 2.000 2147483647 en Glow in the Dark Turtle Bracelet with Shells <p>This cute handmade beach-themed turtle bracelet is very cool.&nbsp; This beaded turtle bracelet features a cute turtle made of recycled materials, surrounded by tiny glow in the dark blue glass beads and vintage shell beads.&nbsp; This double-stranded turtle bracelet is 7.25 inches long with 1 inch stainless steel extender to fit multiple wrist sizes.&nbsp; The silver plated turtle charm on the extender adds extra charm and helps the wearer put on this bracelet independently.&nbsp; <br></p> Cute turtle bracelet, bracelets with extenders, beachy bracelet, beach theme bracelet, nature theme bracelet, glow in the dark bracelet, blue and sand bracelet, blue beaded bracelet, shell bracelet, glass bracelet <p>Bracelet comes gift-ready in a recyclable box!<br></p> <ul><li>Free personalized handwritten message is optional (see photo)<ul><li>Please send me a message with the message&nbsp;</li><li>24 characters -12 characters per line, 2 lines max&nbsp;</li></ul></li></ul> <p><br></p> <ol><li>Cut wire</li><li>String beads</li><li>Close bracelet</li><li>Make bead detail</li><li>Attach bead detail</li></ol> 28.00000000 18M,170 936 O Kim <p><b>Processing Timeframe</b><br></p> <p>I take 1-3 days to process, pack, and ship your order.&nbsp; I use USPS so please allow time for delivery. </p> <p>We can alternatively schedule a date, time, and place for local pickup.&nbsp; Please note that if the location is too far or there is too much conflict with scheduling for pickup, your order will be shipped.&nbsp;&nbsp;</p> <p>If the address for an order is an apartment, but there is no field to input an apartment number or suite when checking out your cart, please send me a message with&nbsp;</p> <ul><li>Your name,</li><li>Your order number,</li><li>The apartment number or suite&nbsp;</li></ul> <p>so I&nbsp;can add it to the shipping label.&nbsp; It's better to be clear and thorough so you get what you ordered.</p> <p>The customer is responsible for inputting the correct address and at a location that is not prone to package theft.&nbsp; The shop owner not responsible for package theft.</p> <p><strong>Issues with Order</strong></p> <p>Please send me a message as soon as you notice any issue with your order, and include photos and/or videos of how the package(s) and item(s) arrived.&nbsp; You have&nbsp;<b>7 days from the day the package arrived</b>&nbsp;to notify me of any issues with your order.&nbsp;&nbsp;</p> <p>If jewelry arrived broken,</p> <ol><li>We can set up a date, time, and place for me to fix it&nbsp;</li><li>You can send it to me, and I will send it back when I fix it</li></ol> <p>If wall art arrived misshapen or in pieces, I will need to fix it at my workspace and send it back to you.&nbsp;&nbsp;It is recommended that all wall art is picked up instead of delivered.</p> <p><strong>Return Policy</strong></p> <p>Please send me a message with the reason(s) why you want to return the item(s).&nbsp;&nbsp;</p> <p>When returning, the customer is responsible for properly packing the item(s) and for the cost of shipping.&nbsp; The amount refunded may be deducted for issues with products where the customer is at fault, for example, not packing items properly or plating is removed from jewelry due to actual wear.</p><p>Items marked in the <strong>Clearance</strong> category are <strong>not eligible for return, replacement, or repair</strong>.<br></p> <p><strong>Jewelry Care</strong></p> <p>Plated jewelry.&nbsp; Please avoid activities where moisture is involved (such as swimming, bathing, and exercising) while wearing plated jewelry to maintain the plating.&nbsp;&nbsp;</p> <p>When not worn, it is best to keep jewelry in a cool, dry, and dark place, such as in a jewelry box.&nbsp; Hang chains and necklaces to prevent tangling.</p> <p><strong>Wall Art Care</strong></p> <p>Keep art in a cool place that avoids sunlight and water.&nbsp; When placed or hung in hot weather or a hot room, the art piece can curl or bend.&nbsp; It will straighten again in cool temperatures.&nbsp; Additionally, when in sunlight for prolonged periods of time, the colors will fade and/or change.</p> glow-in-the-dark-turtle-bracelet-with-shells 2/18 <p><span style="color: rgb(0, 0, 0);">Hi there! I am an educator, cat mom, and maker in San Diego, CA.&nbsp; I make jewelry and I upcycle boxes into wall art.&nbsp;&nbsp;</span></p> <p><span style="color: rgb(0, 0, 0);">My start in making jewelry was difficult but I&nbsp;overcame those difficulties through effort and with help from others.&nbsp; After separating from a problematic jewelry company, which included not investing in me, I said to myself, "If they're not going to teach me, I'll teach myself," and that is what I&nbsp;have done.&nbsp;&nbsp;</span></p> <p><span style="color: rgb(0, 0, 0);">With friends donating beads and supplies to start, I began teaching myself.&nbsp; I could not have gotten here without investment from my friends at this critical juncture.&nbsp; Today,&nbsp;I design and make jewelry that is functional, unique, and beautiful, and that starts with shopping for components that inspire me.&nbsp; The pieces that I make are the ones that I would wear myself, so I know you will look fantastic, too! When someone wears my jewelry, I imagine that the wearer feels a boost of confidence to run the world.</span></p> <p><span style="color: rgb(0, 0, 0);">In addition to jewelry, I also work with my hands by upcycling.&nbsp; I have been upcycling since I was a kid, but I didn't get here until I&nbsp;taught an upcycling course.&nbsp; This course is about the importance of producing less waste, preserving resources, and sustainability.&nbsp; I practice this in my life as well.&nbsp; For example, I give ice cream and snack boxes a second chance at life by turning them into wall art, and you may see some of them in my store.&nbsp;&nbsp;</span></p> <p><span style="color: rgb(0, 0, 0);">Customers also see that I promote sustainability by using paper-based jewelry boxes, and sometimes, packaging materials are reused.&nbsp; I also give jewelry a second chance at life.&nbsp; Some customers ask me to make a bracelet from a broken necklace or fix a pair of earrings.&nbsp; I do my best to do good for customers and Earth.</span></p> D