Autor Zpráva
Hmozdinka
Profil *
Ahoj,

potřebuji zjednoduššit dotaz na mySQL.

Mám pro názornost tuto tabulku:

fl_sestava:
compet - id soutěže
player - jméno hráče


rejstrik_hraci
ID - ID hráče
post - ID postu (brankář, záložník ...)

A já potřebuji vybrat z tabulky fl_sestava pro každou soutěž nejlepší 11-tku

tj. hráče, kteří v tabulce jsou nejčastěji.
1 brankáře
4 obránce
4 záložníky
4 útočníky


Tímto dotazem vyberu 4 nejlepší obránce
----------------------------------------

SELECT

player, COUNT(*) as pocet
FROM fl_sestava AS fls
JOIN rejstrik_hraci AS rh
ON rh.ID = fls.player
WHERE fls.compet = 1
AND rh.post = 3 /* 2 brankar , 3 obrance, 4 zaloznik, 5 utocnik */
GROUP BY fls.player
ORDER BY pocet DESC
LIMIT 4


Takže pokud tento dotaz napíší 4x pokaždé s jiným limitem a jiným ID postem dostanu kýžený výsledek.
Nicméně by mě zajímalo, jak by to šlo napsat pouze 1 dotazem, nejak univerzálněji (Může se stát v jiném sportu, že těch postů bude treba 15 nebo že bych chtěl vypisovat nejlepší 11tku za každou sezonu v cyklu) a pak by to bylo pomalé a zbytečně náročné.

Díky moc
Hmozdinka
Profil *
A pokud by s tím dal někdo práci, jak co nejsnadněji vybrat nejlepší 11-tky pokud je více soutěží. Mám archiv soutěží, pro názornost (1,2,3,4,5) a chci nejlepší 11tku za každou tuto soutěž.

Tj. 5 nejlepší 11tek (11 nejlepších hráčů).
Nějak to naroubovat na první dotaz (pokud ho někdo vymyslí) :-)

Děkuji moc za ochotu
Kajman_
Profil *
Na faq jste koukal? Třeba by se to dalo podobně napsat.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0