SQL Nur Zeilen mit dem Mindestwert in einer Spalte mit der WHERE-Bedingung auswählen

Tabelle

| id | productId | orderIndex | rejected |
------------------------------------------
| 1  |  1        |   0        |   1      |
| 2  |  1        |   1        |   0      |
| 3  |  1        |   2        |   0      |
| 4  |  2        |   0        |   0      |
| 5  |  2        |   1        |   1      |
| 6  |  3        |   0        |   0      |

Wie kann ich eine Zeile pro Produkt-ID mit einem Mindestbestell-Index auswählen, der nicht abgelehnt wurde?

Erwartetes Ergebnis

| id | productId | orderIndex | rejected |
------------------------------------------
| 2  |  1        |   1        |   0      |
| 4  |  2        |   0        |   0      |
| 6  |  3        |   0        |   0      |

Ich habe diese Abfrage versucht, aber kein korrektes Ergebnis erhalten:

SELECT id, productId, min(orderIndex)
FROM table
WHERE rejected = 0
GROUP BY productId

Dieser funktioniert auch nicht:

SELECT id, productId, min(orderIndex)
FROM (
    SELECT id, productId, orderIndex
    FROM table
    WHERE rejected = 0
) t
GROUP BY productId

Antworten auf die Frage(4)

Ihre Antwort auf die Frage