Si lo entiendo correctamente, desea encontrar un pedido que tenga una línea de pedido que cumpla una condición (referencia ="F40") y otra línea de pedido que satisfaga otra condición (descripción ="Epee").
Hacer una unión única no resolverá esto, ya que estará buscando una línea de pedido que satisfaga ambas condiciones. Deberías hacer algo como esto en su lugar:
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"
)