

MySQL: Seřadit výsledky podle jiné tabulky
Ahoj, potřeboval bych pomoct s jedním MySQL dotazem (nevím co mám přesně googlovat, proto se ptám zde):
Mám tabulku jedna:
[b]
id nazev
[/b]
1 pocitac
2 hardware
3 software
Potom mám tabulku číslo dva:
[b]
id idr nazev
[/b]
1 1 zaklady
2 1 periferie
3 3 Windows
kde v druhé tabulce je idr id "rodiče" tabulky jedna. Tudíž v první tabulce:
K id 1 jsou přiřazeny 2 subkategorie, ke dvojce žádná(0) a k trojce jedna. A já potřebuji to takto seřadit, aby se mi podařil takovýto výpis:
počítač-software-hardware přesně podle počtu subkategorii v tabulce 2 přiřazené jedničce. Díky za odpověď.
Chces rict, ze to mas navrzeno tak, ze nemas nikde hlavicku pocitace a k ni to, co obsahuje, ale mas vse namasteno v te druhe tabulce?
Pak je to spatny navrh databaze.
A jak by teda měla být ta databáze navržena?
Dělám katalog odkazů - v jedné tabulce mám kategorie (první tabulka) a v druhé jsou subkategorie - přiřazeny podle id kategorií
Pocitac je jeden celek, ktery obsahuje spoustu komponent. Ty muzes mit rozdeleny do kategorii, ale v tech kateoriich by nemel byt vlastni pocitac.
Takze by mela existovat tabulka Pocitace a PocitaceSoucasti
V te prvni nejake spolecne udaje - typ, vyrobce, kdy sji nakoupil, zarucni doba, cisla dokladu atd. podle toho, co potrebujes a v te druhe pak to, co pocitac obsahuje - software, hardware komponenty...
Pak bys nemel vubec zadny problem s razenim a vybiranim.
Já toto udal pouze jako vymyšlený příklad
mohlo by to pomoct, este som to neotestoval :)
skusim si to hodit do databazy a overim to
EDIT: doplnene descending zoradovanie ;)
otestoval som to u seba a ide to. Jediny problem je, ze pri software sa nezobrazuje ID nadradeneho riadku.
takze vysledok je
1 - Pocitac - 2
3 - Hardware - 1
null - software - 0
druha moznost je...
vytvorit si VIEW podla druhej tabulky, ktore ti bude zobrazovat IDR (id rodica) a pocet riadkov pre kazde IDR.
to prijoinujes k tabulke 1 cez IDR a zoradis podla poctu riadkov z toho VIEW.
Thx funguje to
Funguje to, ale je to pouze obchazeni spatneho navrhu databaze a v budoucnu se ti to vymsti, protoze to budes muset obchazet vzdy, kdyz to budes "nejak" zpracovat.
Já to uvedl pouze jako příklad, ve skutečnosti ty tabulky vypadají takto:
Kategorie jsou:
Auto-moto
Cestování a regiony
Zábava a hobby
a v tabulce subkategorie je třeba k zábavě a hobby toto:
Chovatelství, Film, Hry, Hudba, Humor, Koníčky a hobby....
A v další tabulce odkazy už jsou samotné odkazy, id subkategorie a id kategorie.