SQL dotaz s JOIN
Adam Mika
lists na bnm.cz
Čtvrtek Září 4 09:56:27 CEST 2003
Zdravim,
mam problem, se kterym bych potreboval poradit. Jestli si nekdo udelate
cas, budu moc vdecny.
Problem:
Vytvarim SQL dotaz, kterym si z databaze vytahuju seznam sekci urciteho
serveru. Kazda sekce obsahuje prispevky a ja bych chtel u kazde sekce
zobrazit pocet prispevku, ktere dana sekce obsahuje. To v podstate neni
problem a jednoduchy dotaz s joinem to vyresi [1].
Problem nastava ve chvili, kdy chci jeste filtrovat prispevky, ktere se
maji zapocitat do celkove poctu. V tu chvili se mi prestanou logicky
zobrazovat sekce, ktere neobsahuji zadne prispevky. Ja ale potrebuju
zobrazit i ty.
Kdyz dam do dotazu jeste WHERE prispevky.zobrazit_prispevek = 'Y', tak
logicky u sekci, ktere nemaji prispevky tahle podminka neplati a sekce
se vubec nevypise. Existuje nejake reseni, jak tohle obejit? Zkousel
jsem to ruznymi zpusoby, ale nepovedlo se. Nerad bych to resil tak, ze
bych si pocty prispevku zjistoval az pri vypisovani te konkretni sekce.
Mam napr. tabulky:
SEKCE
- id_sekce
- nazev_sekce
PRISPEVKY
- id_prispevku
- nazev_prispevku
- zobrazit_prispevek
_ id_sekce
[1]
SELECT
sekce.nazev nazev_sekce,
COUNT(prispevky.id_prispevku) pocet_prispevku
FROM sekce
LEFT JOIN prispevky ON prispevky.id_sekce = sekce.id_sekce
GROUP BY sekce.id_sekce
ORDER BY nazev_sekce
Diky za pomoc.
--
Adam Mika
a.m na bnm.cz
Další informace o konferenci Databases