Puoi iniziare selezionando l'ordine minimoIndice di prodotti che non vengono rifiutati in questo modo:
SELECT productId, MIN(orderIndex)
FROM myTable
WHERE rejected = 0
GROUP BY productId;
Una volta che lo hai, puoi unirlo alla tua tabella originale a condizione che productId e minOrderIndex corrispondano:
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;
La mia query presuppone che non ci siano coppie duplicate (productId, orderIndex). Finché non esistono, funzionerà bene. Ecco un SQL Fiddle esempio.