SELECT SQL_CALC_FOUND_ROWS (CASE WHEN products.parent_product_id <> 0 THEN products.parent_product_id ELSE products.product_id END) AS product_id, descr1.product as product, companies.company as company_name, GROUP_CONCAT(products.product_id ORDER BY products.parent_product_id ASC, products.product_id ASC) AS product_ids, GROUP_CONCAT(products.product_type ORDER BY products.parent_product_id ASC, products.product_id ASC) AS product_types, GROUP_CONCAT(products.parent_product_id ORDER BY products.parent_product_id ASC, products.product_id ASC) AS parent_product_ids, products.product_type, products.parent_product_id, products.master_product_offers_count, products.master_product_id, products.company_id, products.updated_timestamp FROM ?:products as products LEFT JOIN ?:product_descriptions as descr1 ON descr1.product_id = products.product_id AND descr1.lang_code = 'ru' LEFT JOIN ?:product_prices as prices ON prices.product_id = products.product_id AND prices.lower_limit = 1 LEFT JOIN ?:companies AS companies ON companies.company_id = products.company_id INNER JOIN ?:products_categories as products_categories ON products_categories.product_id = products.product_id INNER JOIN ?:categories ON ?:categories.category_id = products_categories.category_id 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') AND cscart_categories.storefront_id IN (0, 1) LEFT JOIN ?:warehouses_sum_products_amount as war_sum_amount ON war_sum_amount.product_id = products.product_id LEFT JOIN ?:master_products_storefront_offers_count AS master_products_storefront_offers_count ON master_products_storefront_offers_count.product_id = products.product_id AND master_products_storefront_offers_count.storefront_id = 1 WHERE 1 AND ?:categories.category_id IN (268, 278, 279, 280, 281, 282) AND (companies.status IN ('A') OR products.company_id = 0) AND products.company_id IN (9, 100, 0) AND (products.usergroup_ids = '' OR FIND_IN_SET(0, products.usergroup_ids) OR FIND_IN_SET(1, products.usergroup_ids)) AND products.status IN ('A') AND prices.usergroup_id IN (0, 0, 1) AND products.master_product_status IN ('A') AND products.master_product_id = 0 AND (products.company_id > 0 OR (master_products_storefront_offers_count.count > 0 )) AND products.product_type != 'D' GROUP BY product_id ORDER BY product asc, products.product_id ASC LIMIT 4640, 32