SELECT p.* from Products p where required_product_id IS NULL
UNION ALL
SELECT p.* FROM products p orders o WHERE p.required_product_id = o.product_d
AND o.user_id = 1
UNION ALL
SELECT p.* FROM products p where p.max_buys = 1
SELECT p.* FROM products p WHERE required_product_id IS NULL
UNION ALL
SELECT p.* FROM products p, orders o WHERE p.required_product_id = o.product_id
AND o.user_id = 1
UNION ALL
SELECT p.* FROM products p, orders o
WHERE p.required_product_id = o.product_id
AND p.max_buys > 0
SELECT p.* FROM products p WHERE required_product_id IS NULL
UNION
SELECT p.* FROM products p, orders o WHERE p.required_product_id = o.product_id
AND o.user_id = 1
UNION DISTINCT
SELECT p.`*` FROM products p, orders o WHERE p.id NOT IN (SELECT product_id FROM orders WHERE product_id = p.id AND o.user_id = 1)
AND p.max_buys = 1;