Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> proste zapytanie z data
jarek.n
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 10.12.2009

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


Mam problem zaptyniem o ostatnia date logowan dla wszystkich uzytkownikow

id|user_id|logon_date
5|marek|2009-12-09 12:45:56
4|adam|2009-12-09 13:45:56
3|marek|2009-12-08 11:22:33
2|kuba|2009-12-07 22:23:56
1|adam|2009-12-06 12:45:56


chcialbym uzyskac
5|marek|2009-12-09 12:45:56
4|adam|2009-12-09 13:45:56
2|kuba|2009-12-07 22:23:56

problem jest jak to zrobic dla wszystkich user, dla pojedynczego nie ma problemu
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Mchl
post
Post #2





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


  1. SELECT
  2. t1.id, t2.user_id, t2_logon_date
  3. FROM
  4. users AS t1
  5. CROSS JOIN
  6. (SELECT user_id, MAX(logon_date) AS logon_date FROM users GROUP BY user_id) AS t2
  7. USING
  8. (user_id,logon_date)
Go to the top of the page
+Quote Post
jarek.n
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 10.12.2009

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


OK, dzieki
natomiast jeszcze rozwijajac watek

czy da sie warunkowo przeszukiwac tabele?
tak by uzyskac wartosc "param" dla danego user_id np. dla marek

mam tabele
id|user_id|param|logon_date
5|marek|xyz_000|2009-12-09 12:45:56
4|adam|abc|2009-12-09 13:45:56
3|marek|xyz_000|2009-12-08 11:22:33
2|kuba|asd|2009-12-07 22:23:56
1|adam|abc|2009-12-06 12:45:56

ale ze wzgledu na ilosc rekordow (duzo tys.) chcialbym ograniczyc czas wykonywania zapytania do konkretnych dni, i jezeli select zwroci NULL przeszukiwac dzien wstecz

cos typu
  1. SELECT t1.param
  2. FROM tab AS t1
  3. WHERE t1.user_id='marek'
  4. AND t1.logon_date < sysdate
  5. AND t1.logon_date > sysdate -1


jezeli select nie zwroci nic, szukaj w przedziale sysdate-1;sysdate-2 itd.


da sie w SQL zrobic taki warunek czy trzeba taka logike wyniesc do innego jezyka wyzej

Ten post edytował jarek.n 10.12.2009, 16:37:14
Go to the top of the page
+Quote Post
Mchl
post
Post #4





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


Da się w procedurze składowanej, ale efekt może być taki, że będzie to działało wolniej niż gdybyś przeszukał po prostu cały zakres dat.
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: 22.08.2025 - 02:22