Autor | Zpráva | ||
---|---|---|---|
vSQL Profil * |
#1 · Zasláno: 11. 4. 2014, 15:47:40
Dobrý den,
jak mohu spojit 2 sql dotazy, tak abych výsledek prvního mohl vložit do WHERE druhého dotazu? zkouším použít union a any ale zatím mi to pořádně nejde. mám dvě tabulky: uzivatele: IDu | Jmeno | IDnadrizeny 1 | Novak | null 2 | Dvorak | 1 3 | Veselý |1 4 | Smutný| 2 5 | Tlustý |4 podrizeni IDu | IDpodrizeny 1 | 2 1 | 3 4 | 2 5 | 4 chci vypsat celou tuto stromovou strukturu. děkuji za radu |
||
Destiny_1 Profil |
$query = mysql_query ("SELECT uzivatele.jmeno,uzivatele.IDnadrizeny,podrizeni.IDpodrizeni FROM uzivatele,podrizeni WHERE uzivatele.idu=podrizeni.idu"); a nebo tohle by mělo být to samé. $query = mysql_query ("SELECT uzivatele.jmeno,uzivatele.IDnadrizeny,podrizeni.IDpodrizeni FROM uzivatele,podrizeni LEFT JOIN podrizeni ON uzivatele.idu=podrizeni.idu"); |
||
vSQL Profil * |
#3 · Zasláno: 11. 4. 2014, 16:35:08
díky, já ale potřebuju pro každého uživatele vypsat koho má pod sebou.
takže pro uživatele 1 potřebuju získat všechny podřízené, i podřízené podřízených. to budu muset udělat asi spojením více dotazů, ale nevím jak ID z prvního dotazu vložím do ID druhého. |
||
Kajman Profil |
#4 · Zasláno: 12. 4. 2014, 10:39:59
Pokud používáte mysql, tak tam nativně stromové dotazy jedním dotazem nejdou, jedině když se nachystají pomocné sloupce. Mrkněte na
http://interval.cz/clanky/metody-ukladani-stromovych-dat-v-relacnich-databazich/ http://php.vrana.cz/traverzovani-kolem-stromu-prakticky.php |
||
juriad Profil |
#5 · Zasláno: 12. 4. 2014, 10:51:12
Existují i další možné způsoby ukládání stromů do databáze. Podívej se na prezentaci http://www.slideshare.net/billkarwin/sql-antipatterns-strike-back od strany 48. Vždy záleží na tom, co od stromu vyžaduješ:
- zjištění synů - zjištění všeho v podstromu - zjištění všech rodičů - obrovská velikost stromu - dynamizace stromu (zda vyžaduješ úpravy stromu jednoduchými operacemi) Každá metoda je vhodná na něco jiného. |
||
Časová prodleva: 10 let
|
0