Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 2.236 pregleda

Najnovija ↓

query za aktivnost korisnika u nekom intervalu 05.12.2011. u 14:09 · pre 181 mesec #1
Zdravo,

malo sam zaglavio, imam tri tabele: users, activities,useractivities

users tabela:
id
user

activities tabela:
id
activity

useractivities tabela:
id
activity_id
user_id
activity_date
... i jos neke dodatne kolone


znaci user moze imati vise aktivnosti...
treba mi lista korisnika koji nisu imali aktivnosti u zadnja tri mjeseca, kako??


Re: query za aktivnost korisnika u nekom intervalu 05.12.2011. u 14:20 · pre 181 mesec #2
Prvo nađeš koji su bili aktivni u poslednja tri meseca:

Code (sql):

SELECT DISTINCT user_id
FROM useractivities
WHERE activity_date >= date_sub( curdate(), INTERVAL 3 months)
 


a onda oduzmeš od svih usera one koji su bili aktivni

Code (sql):

SELECT id
FROM users
MINUS
SELECT DISTINCT user_id
FROM useractivities
WHERE activity_date >= date_sub( curdate(), INTERVAL 3 months)
 
Re: query za aktivnost korisnika u nekom intervalu 05.12.2011. u 14:36 · pre 181 mesec #4
Pa to i jeste jedan upit, samo sam ga uradio postupno, da bi razumeo.

Onaj drugi upit ti rešava stvar.

SELECT id
FROM users
MINUS
SELECT DISTINCT user_id
FROM useractivities
WHERE activity_date >= date_sub( curdate(), interval 3 months)

Naravno, može i na druge načine, ali mi ovaj deluje razumljivo za početnika...
Re: query za aktivnost korisnika u nekom intervalu 05.12.2011. u 14:49 · pre 181 mesec #5
A može i ovako:
Code:
SELECT u.id
FROM users u left outer join useractivities ua on (u.id=ua.user_id)
WHERE ua.activity_date >= date_sub( curdate(), interval 3 months) and ua.user_id is null;
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme