Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapytanie mysql, jak napisac zaptanie
cwiklok
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 22.02.2005

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


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).
Go to the top of the page
+Quote Post
krzyszbi
post
Post #2





Grupa: Zarejestrowani
Postów: 251
Pomógł: 13
Dołączył: 15.09.2005

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


witam
moze coś takiego
  1. SELECT id_CzujnikPir
  2. FROM pomiaryPIR
  3. ORDER BY Time DESC LIMIT 1

powinno śmigać


--------------------
Everything should be made as simple as possible, but not simpler. - A.Eainstein
Go to the top of the page
+Quote Post
FiDO
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


@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.


--------------------
Brak czasu :/
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 Aktualny czas: 20.08.2025 - 10:46