Autor | Zpráva | ||
---|---|---|---|
sipo Profil * |
#1 · Zasláno: 14. 3. 2009, 19:18:27
Zdravim, mam tabulku, kde je ulozeno IDskupiny a IDuzivatele (vazba_uzivatel_skupina) = kazdy uzivatel muze byt ve vice skupinach najednou, kazdy jednotlivy zaznam predstavuje jednu vazbu uzivatele se skupinou.
Chtel jsem vybrat vsechny zaznamy pomoci pole, ve kterem mam vice IDskupiny, tzn. chci vyvrat vsechny uzivatele, kteri jsou zahrnuti ve skupinach A,C, a aby se ve vysledne tab. vyskytovali pouze jednou. Tohle mi vybere pouze uzivatele, ktery je clenem vsech skupin v poli jak A tak i C. $poleskupin = Array (A,C) SELECT IDuzivatele FROM vazba_uzivatel_skupina WHERE IDskupiny IN ('" . implode("',' ", $poleskupin) . "') IDuzivatele | IDskupiny ---------------------------------- user1 | A user1 | C user2 | A Ja chci vysledek - user1, user2 Dosavadni chybny vysledek je: user1 |
||
sipo Profil * |
#2 · Zasláno: 14. 3. 2009, 20:02:48
Uz to mam
SELECT IDuzivatele FROM v_uzivatelskupina WHERE IDskupiny LIKE '%".implode("%' OR IDskupiny LIKE '%", $poleskupiny)."%' GROUP BY IDuzivatele" diky |
||
sicario Profil |
#3 · Zasláno: 14. 3. 2009, 23:29:51
sipo
Teda to LIKE me taha za oci... Na jednodussi vyfiltrovani duplicit by v tomto pripade stacilo DISTINCT. SELECT DISTINCT IDuzivatele FROM vazba_uzivatel_skupina WHERE IDskupiny IN ('A', 'C') S GRUP BY se da samozrejme uzit vice zabavy:-) |
||
Časová prodleva: 17 let
|
0