Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wybranie najnowszego rekordu bez podzapytan
Forum PHP.pl > Forum > Bazy danych > MySQL
phoenix84
witam,

potrzebuje sie dowiedziec w jaki sposob wyjac najnowszy rekord lub grupe rekordow (po timestamp lub id), ktory spelnia jakies warunki, ale bez podzapytan, bo chce tego uzyc w perspektywie...
jedyne co przychodzi mi do glowy, to trzymac w innej tabeli duble najnowszych rekordow, ale tak sie ponoc robic nie powinno

dane przykladowe

id waluta kurs
1 USD 3,20
2 EUR 4,20
3 USD 3,10
4 EUR 4,10
5 USD 3
6 EUR 4

no i w efekcie chcialbym uzyskac wynik np:
USD 3
EUR 4

moze jest jakis patent na group by... ale wtedy zwraca mi pierwsze powtorzenia, a nie ostatnie...

bede wdzieczny za wskazowki

w necie pojawia sie cos takiego jak funkcja LAST(), ktora chyba rozwiazalaby mi problem, ale nie moge znalezc jej dokumentacji, a wywala mi error...

pozdrawiam,

k.
thextraman
A nie wystarczy
  1. SELECT kurs FROM kursy WHERE waluta = 'USD' ORDER BY data_dodania DESC LIMIT 1


i tak samo w przypadku innych walut?
lkow77
Cytat(thextraman @ 29.02.2012, 14:57:02 ) *
A nie wystarczy
  1. SELECT kurs FROM kursy WHERE waluta = 'USD' ORDER BY data_dodania DESC LIMIT 1


i tak samo w przypadku innych walut?


a z ciekawości, co w przypadku gdy następne zapytanie ma podawać np 9 wyników bez 1 -go już podanego?
np:

  1. SELECT kurs FROM kursy WHERE waluta = 'USD' ORDER BY data_dodania DESC LIMIT 3


następne zapytanie:

  1. SELECT kurs FROM kursy WHERE waluta = 'USD' ORDER BY data_dodania DESC LIMIT 7 (bez tych LIMIT 3 z poprzedniego zapytania)
slammer
Cytat(lkow77 @ 20.03.2012, 20:16:28 ) *
a z ciekawości, co w przypadku gdy następne zapytanie ma podawać np 9 wyników bez 1 -go już podanego?
np:

  1. SELECT kurs FROM kursy WHERE waluta = 'USD' ORDER BY data_dodania DESC LIMIT 3


następne zapytanie:

  1. SELECT kurs FROM kursy WHERE waluta = 'USD' ORDER BY data_dodania DESC LIMIT 7 (bez tych LIMIT 3 z poprzedniego zapytania)


  1. SELECT kurs FROM kursy WHERE waluta = 'USD' ORDER BY data_dodania DESC LIMIT 3,7
  2. lub
  3. SELECT kurs FROM kursy WHERE waluta = 'USD' ORDER BY data_dodania DESC LIMIT 7 OFFSET 3

Masz 7 rekordów bez 3 pierwszych.
lkow77
dzięki, pomogłeś.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.