Autor | Zpráva | ||
---|---|---|---|
peto230 Profil * |
#1 · Zasláno: 1. 5. 2005, 10:55:40
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 |
#2 · Zasláno: 1. 5. 2005, 11:01:37
Struktura tabulek by nebyla?
Uměl bych to dvouma dotazama. |
||
peto230 Profil * |
#3 · Zasláno: 1. 5. 2005, 11:04:14
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 |
#4 · Zasláno: 1. 5. 2005, 11:05:06 · Upravil/a: Martin
Ta struktura nebude?
Na součet se používá SUM, myslim |
||
peto230 Profil * |
#5 · Zasláno: 1. 5. 2005, 11:07:03
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 * |
#6 · Zasláno: 1. 5. 2005, 11:07:56
Sorry to kclanku je samozrejme typ int
|
||
Martin Profil |
#7 · Zasláno: 1. 5. 2005, 11:08:26
To SUM sem vůbec nepatří, mrknu se nato, ale nic neslibuju
|
||
ash Profil |
#8 · Zasláno: 1. 5. 2005, 16:28:24 · Upravil/a: ash
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 |
#9 · Zasláno: 1. 5. 2005, 19:21:12
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 |
#10 · Zasláno: 1. 5. 2005, 19:50:11 · Upravil/a: ash
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 |
#11 · Zasláno: 1. 5. 2005, 20:43:51
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 |
#12 · Zasláno: 1. 5. 2005, 21:15:00
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 * |
#13 · Zasláno: 1. 5. 2005, 23:11:41
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 |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0