W bazie mam dwie tabele o następującej strukturze:
Kod
uprawnienia_glowne [ u_id | nazwa | czas_pobytu ]
Pierwsza kolumna to identyfikator czasowych uprawnień. czas_pobytu zapisuje w postaci sekund np. 86400 == 1 dzień, 518400 == 6 dni, itd.
Każde uprawnienie może mieć inny czas (czas_pobytu) (tu jeden dzień, tu dwa) - czyli informacja dla mnie po jakim czasie ma usunąć użytkowników z tabeli uprwanień, należących do danej grupy uprwanień (u_id).
Tabela łącząca uprwanienia i użytkowników prezentuje się następująco:
Kod
uprwanienia_uzytkownicy [ id | id_uprwanienia | id_uzytkownika | kiedy_dolaczyl ]
Tłumaczyć nie muszę, kolumna kiedy_dolaczyl zapisuje czas w postaci: time()
Więc
Spróbowałem napisać zapytanie, usuwające użytkownika, który ma uprawnienia dłużej niż powinien mieć (czyli join dla kolumny czas_pobytu z kiedy_dolaczyl
Tylko w jaki sposób ma wyglądać zapytanie z manuala, chodzi o przykład
DELETE FROM t1, t2 USING t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.id=t2.id AND t2.id=t3.id;
Na chwile obecną mam:
DELETE FROM uprwanienia_uzytkownicy AS uz INNER JOIN uprawnienia_glowne AS ug ON(uz.id_uprwanienia=ug.id) WHERE (....)
I nie potrafię napisać całego mechanizmu usuwania, tzn. klazury WHERE. Dodać/odjąć czasy, większe równe od tego i tamtego - gubię się w tym; stąd moja prośba.
PS. Jeżeli czas_pobytu == 0, to nie ma usuwać rekordu.