Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MAX()
kicaj
post
Post #1





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


Zapytanie:
  1. SELECT p1.post_title, p1.post_user_id, MAX( p1.post_add )
  2. FROM posts p1 WHERE p1.post_forum_id = 4
  3. GROUP BY p1.post_forum_id
zwraca wiersz w ktorym jest najnowsza data i czy powinno zwrocic wartosc p1.post_user_id, gdzie wlasnie jest ta najnowsza data? Bo zwraca obojetna, tzn jakiegos tam wiersza, a nie tego gdzie jest najnowsza data (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Chcialbym wyswietlic p1.post_user_id tam gdzie jest najnowsza data
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
popbart
post
Post #2





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


Cytat
Ja napisałbym coś takiego:
  1. SELECT p1.post_title, p1.post_user_id
  2.  
  3.  
  4. FROM posts p1
  5.  
  6. WHERE p1.post_forum_id = 4
  7. ORDER BY p1.post_add DESC LIMIT 1
  8. GROUP BY p1.post_forum_id

MAX() służy raczej do wyciągania największych wartości liczbowych, nie nadaje się do dat

Totalne bzdury. Spróbuj wykonać swoje zapytanie.

kicaj_ -> jeżeli chcesz wyświetlić ostatnie rekordy z każdej grupy(możesz też dodać and p1.post_forum_id = 4) to zrób tak:
  1. SELECT p1.post_title, p1.post_user_id
  2. FROM posts p1 WHERE p1.post_id IN (SELECT MAX( p1.post_id )
  3. FROM posts GROUP BY p1.post_forum_id)

Albo jeżeli nie masz MySQL 4.1.x :

  1. SELECT p1.post_title, p1.post_user_id
  2. FROM posts AS p1
  3. LEFT JOIN posts AS p2 ON ( p1.post_forum_id = p2.post_forum_id AND p1.post_id < p2.post_id )
  4. WHERE p2.post_add IS NULL


Ten post edytował popbart 7.02.2005, 16:44:53
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: 13.10.2025 - 21:36