Autor | Zpráva | ||
---|---|---|---|
Paja222 Profil |
Vyřešeno - když jsem to vše sepsal, tak mě napadlo odmazat kategorii ve where podmínce a funguje to jak má, omlouvám se tedy za spam a zamykám :-)
Ahoj, prosím o radu vzhledem k efektivnosti následujícího dotazu do DB. Tento dotaz volám celkem 4x (4 typy diskusí). Šel by nějak slednotit, do jednoho velkého dotazu? Mám tabulku "diskuse" kde jsou (mimo jiné) sloupečky: kategorie (identifikační klíč diskuse) a idprispevku Poté mám tabulku "diskuse_nastaveni" kde je (mimo jiné) iduzivatele, kategorie a posledni_precteny (v tomto poli je ID posledního přečteného příspěvku). diskuse: ..... idprispevku: 20, kategorie: "prvni"; idprispevku: 21, kategorie: "prvni"; idprispevku: 22, kategorie: "prvni"; idprispevku: 1, kategorie: "druha; idprispevku: 2, kategorie: "druha; diskuse_nastaveni: iduzivatele: 1, kategorie: "prvni", posledni_precteny: 20; iduzivatele: 1, kategorie: "druha", posledni_precteny: 1; Jde mi o dostání 2 údajů z každé kategorie. První je počet nových příspěvků (od posledního přečteného) a číslo posledního přečteného příspěvku. Nyní to provádím tímto dotazem: SELECT count(*),posledni_precteny FROM diskuse d LEFT JOIN diskuse_nastaveni dn ON dn.iduzivatele='1' AND dn.kategorie=d.kategorie WHERE d.idprispevku>dn.posledni_precteny AND d.kategorie='prvni' GROUP BY d.kategorie Chtěl bych to předělat na jeden dotaz, který k jednomu iduzivatele a všem kategoriím vrátí tyto 2 údaje (respektive 3 - název kategorie). Již nad tím sedím několik dní a nenapadá mě, jak to předělat. Nyní se 4 dotazy (při každém načtení stránky) dají tolerovat, ale do budoucna bude přibližně 15 kategorií diskusí, což je již moc. Díky za každou radu. (nebráním se ani předělání struktury tabulek) |
||
Časová prodleva: 10 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0