xamil
22.06.2006, 14:39:27
Pytanie:
Trzy tabele. Tabela uzytkownicy i dwie dodatkowe mające definiować uprawnienia na zasadzie wiele do wielu.
1. uzytkownicy:
id | user
2. uzytkownicy_prawa:
id | id_uzytkownik | id_prawo
3. prawa
id | typ
I teraz jak wyciągnąć z tego tylko tych użytkowników którzy nie mają prawa 'admin' (prawa.typ!='admin')?
spenalzo
22.06.2006, 18:12:29
SELECT u.nazwa FROM uzytkownicy u LEFT JOIN uzytkownicy_prawa up ON (u.id=up.id_uzytkownik) LEFT JOIN prawa p ON (up.id_prawo=u.id AND p.typ!='admin') GROUP BY u.id
Coś takiego chyba.
xamil
22.06.2006, 18:38:05
Nie działa:/ Wyświetla mi zawsze 72 użytkowników (czyli wszystkich:/) niezależnie czy wpisze "p.typ!='admin'" czy "p.typ='admin'". Tak w ogóle to czemu to jest w ON?
nospor
23.06.2006, 09:25:05
Wydzielam z :
http://forum.php.pl/index.php?showtopic=2093&st=0Tamten topic ma sluzyc na gotowe rozwiązania, a nie na rozwiązywanie.
Cytat
Tak w ogóle to czemu to jest w ON?
Zajrzyj do manuala odnosnie left join a sie dowiesz.
Wczoraj byl niemalze identyczny topic:
Temat: Relacja wiele do wielu wyciaganie danychNic tylko dostosowac do swoich potrzeb