Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Z jednej tabeli, z grupowaniem., Nie wiem jak to ująć...
-lukasamd-
post
Post #1





Goście







Witam,
mam tabelę w których są pola: imie, wiek i grupa, powiedzmy że wygląda tak:

Imie1, 18, 1
Imie2, 19, 1
Imie3, 12, 2
Imie4, 31, 3
Imie5, 12, 1
Imie6, 13, 2
Imie7, 20, 3
Imie8, 21, 4

Jak zrobić zapytanie wyciągające z tabeli dane: w każdym wypadku tylko 1 z każdej grupy, do tego najstarsze. Wynik takiego zapytania powinien zwrócić:

Imie2, 19, 1
Imie6, 13, 2
Imie4, 31, 3
Imie8, 21, 4

Próbowałem używać GROUP BY ale nic z tego nie wychodziło :/ tzn. grupowało, ale nie wybierało najstarszych, tylko pierwszych lepszych. Może mnie ktoś oświecić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
osiris
post
Post #2





Grupa: Zarejestrowani
Postów: 121
Pomógł: 15
Dołączył: 19.07.2007

Ostrzeżenie: (0%)
-----


artega:
Twoje zapytanie jest niepoprawne, wykona sie ale najprawdopodobniej bedzie zwraca niepoprawne wyniki.
Wiecej info w mojej odpowiedzi do watku: http://forum.php.pl/Zapytanie_z_MAX__lacze...bel_t99139.html

Poprawne zapytanie powinno wygladac mniej wiecej tak:
  1. SELECT t1.imie, t1.wiek, t1.grupa
  2. FROM tabela t1 INNER JOIN ( SELECT grupa, MAX(wiek) AS max_wiek
  3. FROM tabela GROUP BY grupa) t2 ON t1.grupa = t2.grupa AND t1.wiek = t2.max_wiek


Ten post edytował osiris 27.07.2008, 14:36:20
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 11:36