Autor | Zpráva | ||
---|---|---|---|
kOsTEj Profil |
#1 · Zasláno: 9. 9. 2005, 11:15:18 · Upravil/a: kOsTEj
Ahoj, mam problem, podobnej jako naposled, pomohl me Leo, moc dik este,ale k veci...
Mam tabulku hracu, a tabulku kde je u kazdyho zaznamu ID_zapasu, ID_strelce,ID_asistenta... a ted potrebuji vypsat nejproduktivnejsiho hrace,tzn. secist pocet ID_strelce a ID_asistenta a seradit podle ID_hracu...dik moc btw. nakej server, kde si vsecko tohle najedu a nebudu se tu porad ptat? ja zkousel tohle,ale vypisuje me to 2x tolik... $sql = mysql_query("SELECT pl.ID, pl.name, (COUNT(sc.ID_ass)+COUNT(sc.ID_sc)) AS pocet FROM players AS pl LEFT JOIN scorers AS sc ON pl.ID=sc.ID_ass OR pl.ID=sc.ID_sc GROUP BY pl.ID ORDER BY pocet DESC"); |
||
Kajman Profil * |
#2 · Zasláno: 9. 9. 2005, 12:55:30
Problém bude v tom, že count vyhodí počet řádků. Proto když se sečtou dva, tak je to dvojnásobné. Pokud se nemůže stát. Vzhledem k tomu, že by asi byla blblost, kdyby mohl skorovat i mít asistenci, tak bych libovolné z toho count smáznul a hotovo. Teď si nejsem jistý, ale možná bude mít v tomhle selectu každý alespoň jeden řádek vzhledek k left join a tedy alespoň jeden bod.
K řazení, asi ORDER BY 1. Pokud to má být podle počtu bodů a pak terpve podle id, tak ORDER BY pocet DESC, 1. |
||
Kajman Profil * |
#3 · Zasláno: 9. 9. 2005, 12:57:34
Aha, takže count nepřičte null řádky, takže by to mělo být ok.
|
||
kOsTEj Profil |
#4 · Zasláno: 9. 9. 2005, 13:17:19
Pomohlo to smaznout, tak snad to poslape, zatim dik...
|
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0