Autor | Zpráva | ||
---|---|---|---|
Miri Profil * |
#1 · Zasláno: 19. 7. 2012, 10:39:52
Ahoj, mám takovýto dotaz
SELECT idclen,jmeno, prijmeni, cisloDresu, count(zg1.gol) AS celkemG, count(zg2.asistence) AS celkemA FROM clen . . . . . LEFT JOIN zapasgol AS zg1 on zg1.zapascast_idzapascast = zapascast.idzapascast and zg1.gol = clen.idclen LEFT JOIN zapasgol AS zg2 on zg2.zapascast_idzapascast = zapascast.idzapascast and zg2.asistence = clen.idclen GROUP BY idclen a rád bych dosáhl toho aby mi COUNT zg1 spočítal všechny goly z zapasgol a COUNT zg2 spočítal všechny asistence, problém nastává v tom že pokud jsou v tabulce zapasgol záznamy s goly a asistencema, tak se mi goly a asistence násoběj. příklad (člen dá 3 goly a 0 asistencí - vše je OK , člen dá 3 goly a 1 asistenci - vypíše 3+3, člen dá 3 goly a 2 asistence - vypíše 6+6) Nevíte prosím někdo jak docílit toho aby se mi goly a asistence sčítali zvlášt ? Předem díky za odpověd Míra |
||
Kajman Profil |
#2 · Zasláno: 19. 7. 2012, 11:22:38
Např. count(distinct zg1.id_z_teto_tabulky), případně připojit jednotlivě až výsledky groupů na oněch tabulkách.
Taky by se daly připojit všechny góly v zápase a místo count použít sum(zg1.gol = clen.idclen), ale to asi nebude svižnější. |
||
Miri Profil * |
#3 · Zasláno: 19. 7. 2012, 12:39:16
Super funguje to, jen je to šíleně pomalý.. jak by se připojily výsledky groupů?
|
||
Kajman Profil |
#4 · Zasláno: 19. 7. 2012, 12:41:20
Miri:
„jen je to šíleně pomalý“ Jaký je přesně celý dotaz? Jaký je explain a jaké tam jsou klíče? |
||
Miri Profil * |
#5 · Zasláno: 19. 7. 2012, 12:44:13
Je to trochu delší dotaz no.. přemýšlím jak by šel zkrátit, ale nějak se nechytám :-( ... tady je
SELECT idclen,jmeno, prijmeni, cisloDresu, tymynazev.nazev, count(distinct zg1.idzapasgol) AS celkemG, count(distinct zg2.idzapasgol) AS celkemA FROM clen JOIN clen_has_turnaj on clen_has_turnaj.clen_idclen = clen.idclen and clen_has_turnaj.turnaj_idturnaj = ".$_SESSION["udalost"]["turnaj"]." JOIN clen_has_tymy on clen_has_tymy.clen_idclen = clen.idclen ".$tymy." JOIN tymynazev on tymynazev.tymy_idtymy = clen_has_tymy.tymy_idtymy and tymynazev.jazyk_idjazyk JOIN zapas on zapas.turnaj_idturnaj = ".$_SESSION["udalost"]["turnaj"]." JOIN zapascast on zapascast.zapas_idzapas = zapas.idzapas LEFT JOIN zapasgol AS zg1 on zg1.zapascast_idzapascast = zapascast.idzapascast and zg1.gol = clen.idclen LEFT JOIN zapasgol AS zg2 on zg2.zapascast_idzapascast = zapascast.idzapascast and zg2.asistence = clen.idclen GROUP BY idclen ORDER BY count(distinct zg1.idzapasgol) DESC, count(distinct zg2.idzapasgol) DESC, tymynazev.nazev ".$limit." |
||
Časová prodleva: 12 let
|
0