SELECT *
FROM `SC_products`
WHERE `productID`
IN (
(
SELECT `productID`
FROM `SC_product_options_set`
LEFT JOIN `SC_products_opt_val_variants` ON `SC_product_options_set`.`variantID` = `SC_products_opt_val_variants`.`variantID`
WHERE `SC_products_opt_val_variants`.`optionID` = '14'
GROUP BY `SC_product_options_set`.`productID`
ORDER BY `SC_products_opt_val_variants`.`sort_order` ASC
)
UNION ALL
(
SELECT `productID`
FROM `SC_product_options_values`
WHERE `SC_product_options_values`.`optionID` = '14'
ORDER BY `SC_product_options_values`.`option_value_ru` ASC
)
)
GROUP BY `SC_products`.`productID`
LIMIT 0 , 30
ERROR №1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘UNION ALL ( SELECT productID FROM SC_product_options_values WHERE `SC_produ’ at line 7
Please, help.
Try this:
P.S: You don’t need an ORDER BY in your subquery becuase it is in a IN clause