| Autor | Zpráva | ||
|---|---|---|---|
| sipky Profil * |
select v.*,SUM(v.body) as celkb,h.jmeno,h.prijmeni,h.id as hid,h.klub,z.id_hrace,z.id_zebricku from turnaje_hraci v join hraci h ON h.id = v.hrac LEFT JOIN zebricky_prirazeni z ON z.id_hrace = h.id WHERE (z.id_zebricku = $zebricek $juniori) group by h.id ORDER by (select SUM(body) as celk from turnaje_hraci where hrac = h.id) desc $zebricek = 1; $juniori = ""; Tohle mi vypise tabulku hráčů + jejich body .. jenze.. nektere turnaje jsou tzv. "Double" a nektere "Single".. ja potrebuju, aby ten dotaz bral POUZE 33 nejlepších (nejvíc bodů ve sloupci body) single a 6 double.. protože v této lize se prostě víc turnajů nepočítá.. Tzn.. když někdo bude mít 50 single odehraných turnajů a 10 double odehraných, tak chci, aby tabulka počítala pouze 33 single nejlepších a 6 nejlepších double.. sečetla body a podle toho seřadila data.. single poznáš tak, že v tabulce "turnaje_hraci" ve sloupci "typ" = 0 double to samé, akorát "typ" = 1 Nedari se mi to vubec dat dokupy, uz se v tom zamotavam.. Moderátor Joker: Titulek „MySQL dotaz - pomoc“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší.
|
||
| smonkey Profil |
#2 · Zasláno: 16. 8. 2011, 17:36:50 · Upravil/a: smonkey
$vyber_single=MySQL_Query("SELECT * FROM turnaje_hraci WHERE typ=0 ORDER BY id DESC LIMIT=33");
$vyber_double=MySQL_Query("SELECT * FROM turnaje_hraci WHERE typ=1 ORDER BY id DESC LIMIT=6");Mělo by to fungovat, ještě si to uprav podle svých představ. |
||
| sipky Profil * |
#3 · Zasláno: 16. 8. 2011, 17:38:26
To sice ano, ale já to potřebuju vložit do toho dotazu co jsem psal výše... Můj dotaz bere všechny turnaje, jak má.. správně.. jenže já to potřebuju omezit na ten určitej počet z každého typu.
|
||
| Kajman_ Profil * |
#4 · Zasláno: 18. 8. 2011, 16:06:49
To bude asi na mysql docela složité.
Možná by se dala použít inspirace z faq, kdy je potřeba do toho left joinu zakomponovat omezení na 33 resp 6 nejlepších. |
||
|
Časová prodleva: 14 let
|
|||
0