Możesz zacząć od wybrania minimalnego indeksu zamówienia produktów, które nie są odrzucane w następujący sposób:
SELECT productId, MIN(orderIndex)
FROM myTable
WHERE rejected = 0
GROUP BY productId;
Gdy już to zrobisz, możesz dołączyć do niego z oryginalnym stołem, pod warunkiem, że productId i minOrderIndex są zgodne:
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;
Moje zapytanie zakłada, że nie ma zduplikowanych par (productId, orderIndex). Dopóki te nie istnieją, to będzie działać dobrze. Oto SQL Fiddle przykład.