Autor | Zpráva | ||
---|---|---|---|
na1k Profil |
#1 · Zasláno: 4. 10. 2007, 13:17:29 · Upravil/a: na1k
Mám na stránce články řazené do kategorií, které se mohou libovolně hluboko zanořovat. Při odkazování potom používám adresy jako http://stranka.cz/kategorie1/kategorie2/ přičemž "podsložka" kategorie2 může být vytvořená i v kterékoliv jiné nadřazené kategorii. Proto není možné porovnávat pouze podle jména nejhlubší (vybrané) kategorie, ale je potřeba něco "chytřejšího". V tabulce jsou sloupce id,titulek,parent ... kde parent obsahuje id nadřazené položky (nejvyšší mají parent=0). Cílem tedy je, aby dotaz do DB vybral položky, které mají v názvu "kategorie2" (nejhlubší) a zároveň jejich rodič (nadřazená položka) má v názvu "kategorie1".
Jde něco takového v MySQL stvořit? Určitě je to možné pomocí více dotazů, ale zajímá mě možnost (kvůli omezené počtu dotazů) nacpat všechno do jediného. Teoreticky asi takto nějak :-) SELECT * FROM `kategorie` WHERE `titulek`='kategorie2' AND `parent`=(SELECT `id` FROM `kategorie` WHERE `titulek`='kategorie1') |
||
Kajman_ Profil * |
#2 · Zasláno: 4. 10. 2007, 13:54:54
možná spíš
`parent` in ( select pokud titulek tedy není jedinečný |
||
Časová prodleva: 17 let
|
0