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