Du kan börja med att välja minimiorderindex för produkter som inte avvisas så här:
SELECT productId, MIN(orderIndex)
FROM myTable
WHERE rejected = 0
GROUP BY productId;
När du har det kan du slå ihop det med din ursprungliga tabell under förutsättning att productId och minOrderIndex matchar:
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;
Min fråga gör antagandet att det inte finns några dubbletter (productId, orderIndex) par. Så länge de inte finns kommer det att fungera bra. Här är en SQL-fiol exempel.