SELECT
SQL_CALC_FOUND_ROWS products.product_id,
IF(
shared_descr.product_id IS NOT NULL,
shared_descr.product, descr1.product
) as product,
SUM(
cscart_also_bought_products.amount
) amnt,
IF(
shared_descr.product_id IS NOT NULL,
shared_descr.youtube_link, products.youtube_link
) AS youtube_link,
cscart_aval_statuses_descr.descr as aval_descr
FROM
cscart_products as products
LEFT JOIN cscart_product_descriptions as descr1 ON descr1.product_id = products.product_id
AND descr1.lang_code = 'en'
LEFT JOIN cscart_product_prices as prices ON prices.product_id = products.product_id
AND prices.lower_limit = 1
INNER JOIN cscart_products_categories as products_categories ON products_categories.product_id = products.product_id
INNER JOIN cscart_categories ON cscart_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')
LEFT JOIN cscart_ult_product_descriptions shared_descr ON shared_descr.product_id = products.product_id
AND shared_descr.company_id = 1
AND shared_descr.lang_code = 'en'
LEFT JOIN cscart_also_bought_products ON cscart_also_bought_products.related_id = products.product_id
LEFT JOIN cscart_aval_statuses ON cscart_aval_statuses.aval_status_id = products.aval_status
LEFT JOIN cscart_aval_statuses_descr ON cscart_aval_statuses.aval_status_id = cscart_aval_statuses_descr.aval_status_id
AND cscart_aval_statuses.status = 'A'
AND cscart_aval_statuses_descr.lang_code = 'en'
WHERE
1
AND cscart_categories.company_id = 1
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 cscart_also_bought_products.product_id = 672
GROUP BY
cscart_also_bought_products.related_id
ORDER BY
SUM(
cscart_also_bought_products.amount
) desc,
product_id ASC
LIMIT
0, 3