Autor Zpráva
kOsTEj
Profil
Ahoj mam tabulku, kde mam sloupce ID_sc, ID_ass,sezona...

potreboval bych secist pocet zaznamu ktery se rovnaj nakymu ID zvlast v ID_sc a ID_ass a GROUPovat by sezona...

jde to jednim dotazem, nebo je treba zvlast na kazdej pocet?
dyztak me pomozte s tim dotazem...

dik
xfish5
Profil
Mělo by to jít jedním. Viz. http://php.vrana.cz/spojovani-tabulek.php

Pokud sem hodíš celou strukturu tabulek, zkusím něco napsat za dotaz :)
kOsTEj
Profil
Nevim jestli si rozumime, nevim jestli je nutny pripojovat este nakou tabulky, kdyz vsecky tyhle udaje sou v jedny....

Mam tabulku, kde mam sloupce ID_sc, ID_ass,sezona...
ash
Profil
SELECT sezona, ID_sc AS aaa, count(*) FROM tabulka GROUP BY sezona, aaa
UNION
SELECT sezona, ID_ass AS aaa, count(*) FROM tabulka GROUP BY sezona, aaa
kOsTEj
Profil
Vypadalo to nadejne,ale nejede to :(

myslim do jednoho dotazu spojit

$sql = mysql_query("SELECT sezona,Count(ID_sc) as goly from scorers where ID_sc = '$ID' GROUP BY sezona ORDER by sezona");

&

$sql = mysql_query("SELECT sezona,Count(ID_ass) as asistence from scorers where ID_ass = '$ID' GROUP BY sezona ORDER by sezona");
ash
Profil
Musíš mať rovnaké stĺpce:

SELECT sezona, Count(ID_sc) as goly, '0' as asistence from scorers where ID_sc = '$ID' GROUP BY sezona ORDER by sezona
UNION
SELECT sezona, '0' as goly, Count(ID_ass) as asistence from scorers where ID_ass = '$ID' GROUP BY sezona ORDER by sezona
kOsTEj
Profil
No sloupce budou stejny ne, kdyz je to jedna a ta sama tabulka....Nefacha me to,MySQL to nesezere:(
ash
Profil
Sorry, ORDER BY musí byť len jedno na konci

SELECT sezona, Count(ID_sc) as goly, '0' as asistence from tabul where ID_sc = '$id' GROUP BY sezona
UNION
SELECT sezona, '0' as goly, Count(ID_ass) as asistence from tabul where ID_ass = '$id' GROUP BY sezona
ORDER BY sezona

Alebo podstatne elegantnejšie riešenie:

SELECT sezona,
SUM(CASE WHEN id_sc='$id' THEN 1 ELSE 0 END) AS goly,
SUM(CASE WHEN id_ass='$id' THEN 1 ELSE 0 END) AS asistence
FROM tabulka
GROUP BY sezona

Funguje, teraz som to vyskúšal.
ash
Profil
alebo ešte trochu úspornejšie:

SELECT sezona,
SUM(IF(id_sc='$id',1,0)) as goly,
SUM(IF(id_ass='$id',1,0)) as asistence
FROM tabulka
GROUP BY sezona
kOsTEj
Profil
Tak moc dik, hned to vyzkousim, vazim si tvy trpelivosti...
Toto téma je uzamčeno. Odpověď nelze zaslat.

0