Du warst nah dran
SELECT order_id
FROM orders
WHERE product_id in (222,555)
GROUP BY order_id
HAVING COUNT(DISTINCT product_id) = 2
In Bezug auf Ihre Frage "aus Neugier" in der relationalen Algebra wird dies einfach mit division . AFAIK, kein RDBMS hat eine Erweiterung implementiert, die dies in SQL so einfach macht.