Autor Zpráva
vSQL
Profil *
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 *
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
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0