Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyciągnięcie ostatnich rekordów
kracak
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 11.04.2009

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


Witam mam tabelę w stylu

"statusy"
id (auto_increment), opis, devid, data

oraz tabele "urządzeń"
id nazwa, opis, producent

devid to id urządzenia z drugiej tabeli

w tabeli statusy tworzą się po kolei wpisy dla kazdego urzadzenia np
1, ok, 1, 20120801
2, fail, 2, 20120801
3, fail, 1, 20120802
4, ok, 2, 20120802

itp i teraz pytanie jak wyciągnąć listę wszystkich ostatnich wpisów dla danego devid
czyli np żeby wynik wyrzucił tylko

3, fail, 1, 20120802
4, ok, 2, 20120802
Go to the top of the page
+Quote Post
prachwal
post
Post #2





Grupa: Zarejestrowani
Postów: 171
Pomógł: 18
Dołączył: 13.03.2009
Skąd: lublin

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


robisz podzapytane, tam szukasz max(id) dla danego opis
później join do orginalnego id i masz dane
Go to the top of the page
+Quote Post
kracak
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 11.04.2009

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


Cytat(prachwal @ 15.09.2012, 00:22:30 ) *
robisz podzapytane, tam szukasz max(id) dla danego opis
później join do orginalnego id i masz dane


Właśnie ja to widzę tak że robię select o id , info, date, opis i jakiś drugi o max(id) dla każdego devid potem to mogę sobie ewentualnie połączyć z tabela urządzeń żeby jakieś tam bzdury wyswietlić ale to już mniej istotne i to raczej potrafię zrobić tylko nie wiem jak te dwa pierwsze selecty połączyć.


coś takiego wydziergałem

  1. SELECT * FROM devbackup WHERE id= ANY (SELECT max(id) AS max_id FROM devbackup GROUP BY devid)


Ten post edytował kracak 15.09.2012, 11:12:21
Go to the top of the page
+Quote Post
grzes999
post
Post #4





Grupa: Zarejestrowani
Postów: 305
Pomógł: 29
Dołączył: 5.07.2011

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


Cytat(kracak @ 14.09.2012, 23:47:50 ) *
itp i teraz pytanie jak wyciągnąć listę wszystkich ostatnich wpisów dla danego devid


Powiedz mi jeszcze co rozumiesz pod pojęciem ostatnich wpisów ma być ostatni wpis czy dwa ostatnie czy ile.
Go to the top of the page
+Quote Post
kracak
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 11.04.2009

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


Cytat(grzes999 @ 16.09.2012, 14:39:11 ) *
Powiedz mi jeszcze co rozumiesz pod pojęciem ostatnich wpisów ma być ostatni wpis czy dwa ostatnie czy ile.


Chodziło o jeden ostatni wpis ale dla każdego dev id. Ale zapytaniem które wkleiłem wyżej ładnie udało mi się to zrobić i rozwiązać.
Go to the top of the page
+Quote Post
markonix
post
Post #6





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


A czy to nie wystarczy posortować od tyłu i LIMIT X ? ...
Go to the top of the page
+Quote Post
kracak
post
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 11.04.2009

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


no tak to możesz znaleźć chyba ostatni wpis w tabeli ale jak jest np po 100 wpisów np dla każdego dev id i ok 100 urządzeń z różnymi id to jak to takim prostym sortowaniem załatwić?
Go to the top of the page
+Quote Post
Niktoś
post
Post #8





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Cytat
Właśnie ja to widzę tak że robię select o id , info, date, opis i jakiś drugi o max(id) dla każdego devid potem to mogę sobie ewentualnie połączyć z tabela urządzeń żeby jakieś tam bzdury wyswietlić ale to już mniej istotne i to raczej potrafię zrobić tylko nie wiem jak te dwa pierwsze selecty połączyć.


A czego nie użyjesz polecenia join i złączenia ON(tabela1.devid=tabela2.id) gdzie tabela1 i 2 to przykładowe aliasy.
Go to the top of the page
+Quote Post
markonix
post
Post #9





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Napisałeś w pierwszym poście "dla danego devid" więc jaki w tym problem aby dodać warunek WHERE `devid` i działać z ORDER BY & LIMIT?
Go to the top of the page
+Quote Post
kracak
post
Post #10





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 11.04.2009

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


Cytat(markonix @ 17.09.2012, 19:20:42 ) *
Napisałeś w pierwszym poście "dla danego devid" więc jaki w tym problem aby dodać warunek WHERE `devid` i działać z ORDER BY & LIMIT?

Fakt można było to zdanie dwuznacznie odczytać. Chodziło mi o listę która by zawierała ostatni wpis dla każdego z urządzeń. Poniżej przykład napisałem co powinno wybrać. No ale już sobie poradziłem więc temat można zamknąć no chyba że można ten mój Select jakoś zoptymalizować.
Go to the top of the page
+Quote Post

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: 24.12.2025 - 20:23