Si je vous comprends bien, vous voulez trouver une commande qui a une ligne de commande satisfaisant une condition (référence ="F40") et une autre ligne de commande satisfaisant une autre condition (description ="Epee").
Faire une seule jointure ne résoudra pas ce problème, car vous chercherez une ligne de commande qui satisfait aux deux conditions. Vous devriez faire quelque chose comme ceci à la place :
SELECT orderNumber FROM `order`
WHERE id IN (
SELECT orderid FROM orderDetail od1
INNER JOIN orderDetail od2
USING (orderid)
WHERE od1.reference = 'F40' AND od2.description = "Epee"
)