Pierwsza [records] zawiera: id, name, value.
Druga [records_values] zawiera: id, value, condition.
Chcę wyciągnąć rekordy z unikalnymi id spełniające warunek i o najwyższej wartości condition.
Powiedzmy, że tabele wypełnione są tak:
[records]
id | name | value
1 | ABC | 3
2 | DEF | 5
3 | GHI | 0
[records_values]
id | condition | value
1 | 8 | 0
1 | 10 | 1
1 | 20 | 3
2 | 5 | 0
2 | 10 | 5
3 | 0 | 0
Chcę odpytać o unikalne rekordy, w których condition jest mniejsze od 15, ale maksymalne w swojej grupie, czyli:
id | name | value
1 | ABC | 1
2 | DEF | 5
3 | GHI | 0
Próbowałem przez:
SELECT r.id, r.name, rv.value FROM records r LEFT JOIN records_values rv USING (id) WHERE rv.condition < 15 GROUP BY r.id ORDER BY rv.condition DESC
Niestety ORDER BY jest ignorowane lub nie działa tak jak przewidywałem.
Jakies pomysły?
Zadanie "na szóstkę": wynik całości ma być sortowany po id

Z góry dziękuję!
Czy można w ogóle sortować wewnątrz grupy?