Autor | Zpráva | ||
---|---|---|---|
SwimX Profil |
#1 · Zasláno: 7. 3. 2010, 15:20:37 · Upravil/a: SwimX
Dobrý den,
mám tabulku kategorie id_kat | id_nad | nazev | poradi záznamy s id_nad = nějakému id_kat, jsou podkategorie patřící do kategorie id_kat. Pořadí. Kategorie s poradi 1 bude 1., 2 bude 2., a záznamy s poradi = 0 budou potom, sežazeny podle nazvu ASC. Stejně tak budou seřazeny podkategorie v kategorii. Jak mám toto dostat do jednoho dotazu, aby se mi to vrátilo i seřazené? Stále se mi na to nedaří přijít. (pro uživatele se budou vypisovat jen ty položky, kde je v podkategorii nějaká prezentace. Tab: prezentace id_prez, id_kat, nazev , to už ale azřídí jednoduchý JOIN)
Děkuji za veškeré rady |
||
ninja Profil |
#2 · Zasláno: 7. 3. 2010, 16:42:15
|
||
SwimX Profil |
#3 · Zasláno: 8. 3. 2010, 15:49:32
ninja:
Děkuji, bylo to přínosné, přesto si to tu nechám ještě jedno uzkritizovat. Na výpis kategorií + podkategorií těch, kde existuje nějaká prezentace používám toto: SELECT DISTINCT t1.nazev kat_nazev, t1.id_kat kat_id, t2.nazev podkat_nazev, t2.id_kat podkat_id, t1.url kat_url, t2.url podkat_url FROM kategorie t1 JOIN kategorie t2 ON t2.id_nad = t1.id_kat JOIN prezentace p ON p.id_kat = t2.id_kat ORDER BY t1.poradi != 0 DESC, t1.poradi, t1.nazev, t2.poradi != 0 DESC, t2.poradi, t2.nazev kat_nazev kat_id podkat_nazev podkat_id kat_url podkat_url Zip with 21 zipka 22 zip-with zipka Zip with 21 zipka druha 24 zip-with zipka-druha ... Při přidávání prezentace mu v selectu nabízím všechny podkategorie, které existují bez ohledu na počet prezentací v nich (čili bez JOIN prezentace) Při výpisu všech kategorií a podkategorií, které v DB jsou, bez ohledu na to, zda v nich existuje prezentace nebo podkategorie používám toto: SELECT DISTINCT t1.nazev kat_nazev, t1.id_kat kat_id, t2.nazev podkat_nazev, t2.id_kat podkat_id, t1.url kat_url, t2.url podkat_url FROM kategorie t1 LEFT JOIN kategorie t2 ON t2.id_nad = t1.id_kat WHERE t1.id_nad = 0 ORDER BY t1.poradi != 0 DESC, t1.poradi, t1.nazev, t2.poradi != 0 DESC, t2.poradi, t2.nazev Pokud se to někomu chtělo číst, a pak ještě řešit, tak děkuji za případné připomínky. (Vše mi funguje, takže dotaz nemám žádný, jen kdybyste tam viděli chyby :) |
||
Časová prodleva: 14 let
|
0