Aktív témák

  • L3zl13

    nagyúr

    válasz Ghostika #47 üzenetére

    Ha az SQL stringre gondolsz akkor:

    select tema.tema_id, cim, count(hozzaszolas_id) as hozzaszolas from tema left outer join hozzaszolas on tema.tema_id=hozzaszolas.tema_id group by tema.tema_id,cim

    Az eleje gondolom egyértelmű, a lényeg, hogy ne *-ozz mert akkor nem nagyon tudsz count meg hasonló kifejezéseket használni.Ehelyett szépen felsorolod azokat az oszlopokat amire szükséged van.
    A count(xyz) azt jelenti, hogy nem kiírja egyenként az xyz-ket, hanem csak megszámolja őket.
    Pl ha az lenne a query, hogy ''select count(tema_id) from tema'' akkor csak egy számot kapnál eredménynek. Mégpedig a témák számát.

    az 'as hozzászólás' azért van, hogy könnyebben lehessen hivatkozni a fügvény eredményeképp kapott mezőre kiíratáskor.

    'from tema' gondolom egyértemű

    left outer join - ezzel kapcsolod össze a két táblát, mégpedig olyan módon, hogy a baloldali tábla (left) minden eleme szerepel az eredményképpen kapott összesített táblában, míg a jobboldali táblából csak azok az elemek, amelyek az összekapcsolási feltételnek megfelelnek.

    hozzaszolas - a másik tábla neve

    on tema.tema_id=hozzaszolas.tema_id - Az összekapcsolási feltétel. Innen tudja, hogy a hozzaszolas táblábol melyik sor a tema tábla melyik sorához tartozik. (Ahol a tema_id -k megegyeznek.)

    group by tema.tema_id,cim - csoportosítás tema_id és cím szerint. Ez azért kell, hogy a hozzászólások táblát a count-nál ne egybe vegye, hanem tema_id-nként számolja össze a hozzászólások számát.

    Utolsó hozzászólóhoz szerintem külön lekérdezés kell.

    Aki hülye, haljon meg!

Aktív témák