Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> SELECT MIN, druga wartosc
AoW
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 3.08.2005

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


Witam,

sam nie wiem jak zaczac posta, zacmienie jakies mnie dopadlo. Mam (wydaje mi sie) banalne zadanie i mam problem:

Tabela:
  1. id czas user
  2. 1 10 1
  3. 2 11 2
  4. 3 23 2
  5. 4 12 3
  6. 5 10 3


Cel, posortowanie userow o najmniejszej wartosci i zalozeniem, ze jesli dwoch userow ma taka sama wartosc to "wyzej" bedzie ten o mniejszym ID.

Czyli wynik powinien byc taki (lp, user, czas, id):

  1. 1 10 1
  2. 3 10 5
  3. 2 11 2


Zapytanie:

  1. SELECT user, MIN(czas) AS czas, id FROM test GROUP BY user ORDER BY czas


Wynik

  1. 1 10 1
  2. 3 10 4
  3. 2 11 2


...dla usera numer 3 mysql wyswietla ID 4, a nie 5.

Pogubiłem się, proszę o podpowiedź.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
AoW
post
Post #2





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 3.08.2005

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


Mhm, fajno, dzięki, wszystko jasne..


To pytanie zatem to kogoś, kto ma więcej ochoty, czy cierpliwości.

Czy można zrobić jedno zapytanie, aby pobrać poprawnie te trzy wartości, czy muszę najpierw robić SELECT MIN, czas, a pozniej sprawdzac w drugim SELECT'cie ID odpowiadajace posortowanym wynikom?


-----------------------------------------

Ok, chyba znalazłem rozwiązeni, które mnie satysfakcjonuje. Może się komuś przyda na przyszłość:

SELECT *
FROM (
SELECT *
FROM test ORDER BY czas ASC
) as test GROUP BY user ORDER BY czas

Ten post edytował AoW 9.11.2013, 13:10:43
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: 28.12.2025 - 19:07