Autor Zpráva
na1k
Profil
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 *
možná spíš
`parent` in ( select
pokud titulek tedy není jedinečný

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: