Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie mysql
Forum PHP.pl > Forum > Bazy danych > MySQL
cwiklok
Witam
Jak mam napisać zapytanie?. Mam taką tabelę o nazwie pomiaryPIR.
Kod
id_pomiar         id_CzujnikPir       ID_Wartosc        Time
1                     1                      0            15
2                     2                      1            17
3                     1                      1            18  

Koluma Time jest w formacie timestamp. Tutaj podałęm przykładowe wartości zeby było bardziej przejżyście. chodzi o to żeby wyciągnąć aktualną wartość każdego id_czujnikPIr , Jeżeli występuje on kilkakrotnie to żeby wyciągnąc ten który ma najwieksz znacznik czasu (jest najbardziej aktualny).
krzyszbi
witam
moze coś takiego
  1. SELECT id_CzujnikPir
  2. FROM pomiaryPIR
  3. ORDER BY Time DESC LIMIT 1

powinno śmigać
FiDO
@krzyszbi: nie do końca zrozumiałeś problem. To nie jest aż takie proste.

@cwiklok: jeśli dysponujesz MySQL'em w wersji co najmniej 4.1 to sprawa jest całkiem prosta. Załatwia się to podzapytaniem:

Kod
SELECT id_CzujnikPir, (SELECT ID_wartosc FROM pomiaryPIR t2 WHERE t1.id_czujnikPir = t2.id_czujnikPir ORDER BY time DESC LIMIT 1)
FROM pomiaryPIR t1
GROUP BY id_CzujnikPir


Jeśli nie masz możliwości użycia podzapytań to pozostaje troche brzydsza droga:

Kod
SELECT t1.id_CzujnikPir, t1.Id_Wartosc
FROM pomiaryPIR t1
LEFT JOIN pomiaryPIR t2 ON (t1.id_czujnikPir = t2.id_czujnikPir AND t1.time < t2.time)
WHERE t2.time IS NULL

Nie sprawdzałem tego zapytania, bo nie mam teraz jak, więc nie gwarantuje, że zadziała od razu.
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-2019 Invision Power Services, Inc.