![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 2 Dołączył: 3.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
Są takie oto rekordy (tabela uzytkownicy):
Kod +---------+-----------+-------------+ | id | zespol_id | imie | +---------+-----------+-------------+ | 1 | 3 | Karolina | | 2 | 3 | Mateusz | | 3 | 3 | Magda | | 4 | 3 | Andrzej | +---------+-----------+-------------+ Teraz grupując zapytaniem:
otrzymujemy liczbę użytkowników w danym zespole oraz imię jednego użytkownika w tym teamie oraz jego id, problem polega jednak na tym, że w żaden sposób nie można wpłynąć na to, które imię się wyświetli Czy można w jakiś sposób wpłynąć na to, które imię się wyświetli (np. posortować alfabetycznie i zwróci się pierwsze; dobrze by też było jakby zwracane było właściwe dla tego użytkownika id)(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 16.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(johnson @ 2005-05-22 17:58:17) Przypuśćmy, że istnieje dodatkowe pole 'wiek' i chcemy, uzyskać liczbę użytkowników w grupie i imię oraz wiek najstarszego użytkownika w grupie. Jak to osiągnąć? Wiek najstarszego użytkownika uzyskasz używając MAX(wiek), natomiast co do pozostałych informacji... Powiem inaczej, a co jeśli w danej grupie jest więcej ludzi o takim samym wieku? Dlatego takie zapytanie jest nielogiczne. Jeżeli coś grupujesz, to aby uzyskać jednoznaczność, musisz albo wybierać pola, po których następuje grupowanie albo używać funkcji agregujących na pozostałych polach. To co chcesz uzyskać można robić wieloma zapytaniami, bądź użyć MySQL'a w wersji minimum 4.1, gdzie można stosować zagnieżdżone SELECTy. Można też kombinować z tablicami tymczasowymi, dla starszych wersji. Poza tym nie widzę problemu, aby jednak po prostu zliczyć ilość zwróconych wierszy. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 21:36 |