Autor Zpráva
peto230
Profil *
Mam takyto problem. Mam 2 tabulky, clanky a komentare
Potrebujem vytiahnut vsetky clanky (z tabulky clanky) a zaroven aj pocet komentarov ku kazdemu clanku (z tabulky komentare). Dufam ze som to napisal dost jasne.
Martin
Profil
Struktura tabulek by nebyla?
Uměl bych to dvouma dotazama.
peto230
Profil *
A ja by som chcel jeden dotaz. Dost by mi to ulahcilo. Viem ze by sa tam asi malo pouzit group by a count a mozno aj join ale neviem ako.
Martin
Profil
Ta struktura nebude?
Na součet se používá SUM, myslim
peto230
Profil *
Sorrac

Takze priblizne

clanky
titulok - varchar
idclanku - int
pridane - datetime
clanok - text

komentare
autor - varchar
titulok - varchar
kclanku - idclanku
pridane - datetime
komentar - text
peto230
Profil *
Sorry to kclanku je samozrejme typ int
Martin
Profil
To SUM sem vůbec nepatří, mrknu se nato, ale nic neslibuju
ash
Profil
SELECT clanky.titulok, clanky.clanok, COUNT(komentare.idkomentara)
FROM clanky LEFT JOIN komentare ON clanky.idclanku=komentare.kclanku
GROUP BY clanky.idclanku


len tak z hlavy, nemám to vyskúšané.
Martin
Profil
Myslim, že by to fungovat nemělo, podle mě musí být COUNT v samostatnym dotazu.
Řešilo se to tady http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=22 73 .
Párkrát jsem na to už narazil
ash
Profil
Martin:

Prečo by to nemalo fungovať?
Mne to funguje. Teraz som si to vyskúšal. Dostal som zoznam článkov a pri každom počet komentárov z druhej tabuľky. Vypíše to správne, aj keď článok žiadny komentár nemá.

Ten thread, na ktorý odkazuješ, je o niečom inom.
Martin
Profil
Já se nehádám, mohl by jsi mi prosim Tě vysvětli, kdy COUNT v dotazu funguje(jako v tomhle případě) a kdy to nefunguje (jako v threadu na který jsem odkazoval) ? Díky
ash
Profil
V podstate ide len o to, že ak v SELECTe použiješ COUNT(), ktorý počíta riadky tabuľky X, z riadkov tabuľky X už nemôžeš dostať detailný výstup (v tom istom jedinom SELECTE). Dostaneš jeden riadok pre každú hodnotu GROUP BY.

Z môjho príkazu teda nedostaneš detaily o komentároch, len ich počet.

Možno by sa to dalo obísť, keby sa v SELECTe zlinkovala tabuľka sama so sebou, ale momentálne mi nenapadá praktický príklad.
peto230
Profil *
Zdravim, funguje to presne ako som chcel

Chcem upozornit vsetkych co to budu skusat ako ja:

SELECT clanky.titulok, clanky.clanok, COUNT('komentare.*')
FROM clanky LEFT JOIN komentare ON clanky.idclanku=komentare.kclanku
GROUP BY clanky.idclanku

ze takto to nefunguje, za tym count musi byt asi nejaky jedinecny stlpec ako napriklad komentar.idkomentara
Toto téma je uzamčeno. Odpověď nelze zaslat.

0