Une clause WHERE ne peut regarder que les colonnes d'une ligne à la fois.
Donc, si vous avez besoin d'une condition qui s'applique à deux différents lignes d'une table, vous devez vous joindre à cette table deux fois, afin que vous puissiez obtenir des colonnes des deux lignes.
SELECT p.*
FROM "products" AS p
INNER JOIN "custom_field_answers" AS a1 ON p."id" = a1."product_id"
INNER JOIN "custom_field_answers" AS a2 ON p."id" = a1."product_id"
WHERE a1."value" = 'bangle' AND a2."number_value" < 50