Autor | Zpráva | ||
---|---|---|---|
kOsTEj Profil |
#1 · Zasláno: 13. 9. 2005, 00:05:52
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 |
#2 · Zasláno: 13. 9. 2005, 07:24:19
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 |
#3 · Zasláno: 13. 9. 2005, 08:58:37 · Upravil/a: kOsTEj
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 |
#4 · Zasláno: 13. 9. 2005, 09:30:41 · Upravil/a: ash
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 |
#5 · Zasláno: 13. 9. 2005, 09:55:04
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 |
#6 · Zasláno: 13. 9. 2005, 10:33:32
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 |
#7 · Zasláno: 13. 9. 2005, 16:53:46 · Upravil/a: kOsTEj
No sloupce budou stejny ne, kdyz je to jedna a ta sama tabulka....Nefacha me to,MySQL to nesezere:(
|
||
ash Profil |
#8 · Zasláno: 13. 9. 2005, 21:08:22 · Upravil/a: ash
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 |
#9 · Zasláno: 13. 9. 2005, 21:29:46
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 |
#10 · Zasláno: 14. 9. 2005, 19:02:40
Tak moc dik, hned to vyzkousim, vazim si tvy trpelivosti...
|
||
Časová prodleva: 20 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0