SELECT
SQL_CALC_FOUND_ROWS products.product_id,
descr1.product as product,
companies.company as company_name,
products.product_type,
products.parent_product_id
FROM
q_products as products
LEFT JOIN q_product_options_inventory as inventory ON inventory.product_id = products.product_id
LEFT JOIN q_product_descriptions as descr1 ON descr1.product_id = products.product_id
AND descr1.lang_code = 'en'
LEFT JOIN q_product_prices as prices ON prices.product_id = products.product_id
AND prices.lower_limit = 1
LEFT JOIN q_companies AS companies ON companies.company_id = products.company_id
INNER JOIN q_products_categories as products_categories ON products_categories.product_id = products.product_id
INNER JOIN q_categories ON q_categories.category_id = products_categories.category_id
AND (
q_categories.usergroup_ids = ''
OR FIND_IN_SET(0, q_categories.usergroup_ids)
OR FIND_IN_SET(1, q_categories.usergroup_ids)
)
AND q_categories.status IN ('A', 'H')
WHERE
1
AND companies.status = 'A'
AND (
CASE products.tracking WHEN 'O' THEN inventory.amount > 0 WHEN 'B' THEN products.amount > 0 ELSE 1 END
)
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 1 != 1
GROUP BY
products.product_id
ORDER BY
products.timestamp desc,
products.product_id ASC
LIMIT
0, 100