Vous pouvez commencer par sélectionner le minimum de commandeIndex des produits qui ne sont pas rejetés comme ceci :
SELECT productId, MIN(orderIndex)
FROM myTable
WHERE rejected = 0
GROUP BY productId;
Une fois que vous avez cela, vous pouvez le joindre à votre table d'origine à condition que productId et minOrderIndex correspondent :
SELECT m.id, m.productId, m.orderIndex
FROM myTable m
JOIN(
SELECT productId, MIN(orderIndex) AS minOrderIndex
FROM myTable
WHERE rejected = 0
GROUP BY productId) tmp ON tmp.productId = m.productId AND tmp.minOrderIndex = m.orderIndex;
Ma requête suppose qu'il n'y a pas de paires en double (productId, orderIndex). Tant que ceux-ci n'existent pas, cela fonctionnera très bien. Voici un SQL Fiddle exemple.