Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> MySQL - wyciąganie najnowszego rekordu z podrzędnej w jeden-do-wielu
erix
post 15.06.2009, 12:52:19
Post #1





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Mam takie zapytanie:
  1. SELECT *
  2. FROM items LEFT JOIN files ON ( files.item = items.id AND files.`date` = (
  3. SELECT max( `date` )
  4. FROM files WHERE files.item = items.id ) )

Ma ono na celu pobrać wszystkie rekordy z tabeli items z odpowiadającymi im najnowszymi wpisami w files.

Czy da się tego potworka napisać bez podzapytań? Kombinowałem z group by, ale nie wiem, jak go zmusić, aby wyciągał jako ostatni rekord z najnowszą datą (zawsze wypluwa pierwszy z podrzędnych).


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
wookieb
post 15.06.2009, 13:24:25
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Bez podzapytań raczej nie da rady.
Ja czasem stosuje rozwiazanie ze do tabeli nadrzednej dodaje kolumne w ktorej umieszczam id ostatniej elementu podrzednego. Max szybkość przy niewielkim nakładzie pracy w php.

Jedyna co udało mi się uzyskać to coś takiego

  1. SELECT * FROM ( SELECT a.*, b.* FROM FIELDS a LEFT JOIN items b ON (b.id=a.item)
  2. GROUP BY a.id, b.date DESC ) c
  3. GROUP BY c.id


Ten post edytował wookieb 15.06.2009, 13:28:10


--------------------
Go to the top of the page
+Quote Post
erix
post 15.06.2009, 13:29:44
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Ja czasem stosuje rozwiazanie ze do tabeli nadrzednej dodaje kolumne w ktorej umieszczam id ostatniej elementu podrzednego.

O, i to jest myśl. ;]


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 21.06.2025 - 17:28