Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sortowanie zgrupowanych rekordów
Forum PHP.pl > Forum > Bazy danych > MySQL
Tomplus
Witam,

Piszę już drugi temat, ale mam pytanie w sprawie rekordów z grupwoanych:

mam:
Kod
| ID | PRODUKT | CENA | KOLOR | GRUPA |
| 1 | telewizor | 100 | czarny | RTV |
| 2 | telewizor | 150 | zolty | RTV |
| 3 | telewizor | 50 | fioletowy | RTV |
| 4 | radio | 10 | zielony | RTV |
| 5 | radio | 20 | zolty | RTV |

zapytanie:
  1. SELECT * FROM produkty WHERE GRUPA='RTV' GROUP BY (PRODUKT);


wynik:
Kod
1 telewizor 100 czarny RTV
4 radio 10 zielony RTV


Używając ORDER BY np. CENA działa tylko na te dwa rekordy, a nie zgrupowane.
Co zrobić aby móc dostać wartość np. 150, a nie 100 dla TV i zarazem aby znać kolor dla tej ceny?




znajdzie się jakaś pomocna osoba?
nospor
  1. SELECT * FROM (SELECT * FROM produkty WHERE GRUPA='RTV' GROUP BY (PRODUKT)) podsel ORDER BY podsel.CENA DESC
mmmmmmm
To zapytanie jest bez sensu (dla bazy danych). Tylko takie coś jak MySQL może wykonać to bez błędu (czasem).
Napisz, co chcesz osiągnąć.
Co ma pokazać, gdy będziesz miał coś takiego:
  1. | ID | PRODUKT | CENA | KOLOR | GRUPA |
  2. | 1 | telewizor | 100 | czarny | RTV |
  3. | 2 | telewizor | 150 | zolty | RTV |
  4. | 3 | telewizor | 50 | fioletowy | RTV |
  5. | 4 | radio | 10 | zielony | RTV |
  6. | 5 | radio | 20 | zolty | RTV |
  7. | 6 | telewizor | 150 | czerwony | RTV |
Tomplus
W takim wypadku wystarczy dla ceny DESC aby jeden z rekordów 2 lub 6 był wyświetlony.

ogólnie problem roziązałem z małą pomocą nospora
chociaż nie wiem dlaczego, ale to zapytanie nie zadziałało tak jak należy, ale gdy w pierwszym selekcie posortowałem wg ceny a potem zgrupowalem.

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.