![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 14.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mam dwie tabele, które łączę w zapytaniu LEFT JOINem.
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? Ten post edytował pracus 6.11.2010, 09:26:47 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 258 Pomógł: 17 Dołączył: 22.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
tak pisane z palca, wiec nie jestem pewien czy na 100% Ci zadziala
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 14.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki! Zaraz sprawdzę.
Tylko już widzę błąd - to condition ma być maksymalne (ale spełniające warunek), a nie value. Niestety nie działa :/ |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 13:45 |