Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: proste zapytanie z data
Forum PHP.pl > Forum > Bazy danych > MySQL
jarek.n
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
Mchl
  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)
jarek.n
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
Mchl
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.
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.