Vous pouvez utiliser une jointure pour cela :
SELECT
d1.value AS product_name,
d2.value AS product_description
FROM
product_description d1 JOIN product_description d2 ON
(d1.id = d2.id AND
d1.reference_field = 'product_name' AND
d2.reference_field = 'product_description')
WHERE
d1.id = 4
Cela fonctionne mieux si vous n'avez pas beaucoup de champs à inclure dans votre requête, car vous devez ajouter une autre table à votre requête pour chaque colonne que vous souhaitez ajouter. Mais il a l'avantage que vous pouvez afficher n'importe quel nombre de produits, pas un seul.