Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: LEFT JOIN i co dalej?
Forum PHP.pl > Forum > Bazy danych > MySQL
Aztech
Chciałbym wyliczyć średnie punktowe jakie uzyskały osoby umieszczone u mnie w bazie.

TID | TurnID | HID| GID | GP | HP | DN
gdzie
TID klucz
TurnID numer turnieju
HIP ID gospodarza meczu
GID ID gościa meczu
HP punkty zdobyte w meczu przez gospodarza
GP punkty zdobyte w meczu przez gością
DN ID miejsca gdzie odbył sie mecz

Problem polega na tym, że osoba może wystapić raz jako gość i raz jako gospodarz i nie mogę sobie poradzić wtedy z wyliczniem średniej, zapytanie zwraca mi średnie, AHP jest z 10 meczow a AGP jest z 3 i nie wiem jak zliczyc te mecze

moje zapytanie:
  1. SELECT td1.HostID, td2.GuestID, AVG( td1.HostPoints ) AS AHP, AVG( td2.GuestPoints ) AS AGP
  2. FROM tournamentsdata AS td1
  3. LEFT JOIN tournamentsdata AS td2 ON td1.HostID = td2.GuestID
  4. GROUP BY td1.HostID


Jak dodam
  1. count(td1.HostPoints) oraz count (td2.HostPoints)

to pokazuje mi jakies kosmiczne ilosci meczow... ale srednie sa wyliczane dobrze
ti samo jak uzyje SUM to suma jest za duza ale w ogolnym podsumowaniu srednie są OK (chyba zlicza z powtorzeniami)

1) JAK ZLICZYC POPRAWNIE MECZE
2) JAK WYELIMINOWAC POWTORZENIA?
spenalzo
Skoro pokazuje złe wartości, to powinieneś zmienić warunek lub kolumnę, którą zliczasz.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.