Можете да започнете, като изберете минималния индекс за поръчка на продукти, които не са отхвърлени по следния начин:
SELECT productId, MIN(orderIndex)
FROM myTable
WHERE rejected = 0
GROUP BY productId;
След като го имате, можете да го присъедините към оригиналната си таблица при условие, че productId и minOrderIndex съвпадат:
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;
Моята заявка прави предположението, че няма дублиращи се двойки (productId, orderIndex). Докато такива не съществуват, това ще работи добре. Ето SQL Fiddle пример.