Otóż:
Mam dwie tabele:
Zawodnicy i Mecze. Dla uproszczenia Zawodnicy to: id_zawodnik, a Mecze to: id_mecz, id_zawodnik1, id_zawodnik2, pkt_zawodnik1
W momencie rozegrania meczu do tabeli Mecze dodaje 2 wpisy, np.
id_mecz:1 (AI), id_zawodnik1:5, id_zawodnik2: 6, pkt_zawodnik1: 3
id_mecz:2 (AI), id_zawodnik1:6, id_zawodnik2: 5, pkt_zawodnik2: 1
I teraz do sedna: chce wyświetlić rozegrane mecze w formie tabeli (Jakiś znaleziony przykład).
Umiem to zrobić tylko w bardzo złe sposoby. 1) poprzez SQL'a w pętli podczas generowania tabeli. Dla każdej komórki tabeli sprawdzam czy istnieje mecz where id_zawodnik1 = and id_zawodnik2 = . Co jest oczywiście głupie bo liczba zapytań będzie rosła wraz z liczbą zawodników.
2) Na początku miesiąca wstawiam do tabeli mecze mecze każdy z każdym z jakąś wartością, która powie mi, że te mecze to "fake".
To rozwiązanie też mi sie nie podoba bo musiałbym co miesiąc o to dbać (w sensie znowu "jakoś" to zautomatyzować), a po drugie po co mi w tabeli wpisy, które nie są rzeczywistymi meczami. :/
No więc robiąc LEFT JOIN
mogę sobie odebrać tylko i ażwszystkie rozegrane mecze. Chciałbym to uzupełnić o wszystkie warianty dla każdego zawodnika (przykład niżej)
SELECT * FROM Mecze LEFT JOIN Zawodnicy ON Zawodnicy.id_zawodnik = Mecze.id_zawodnik2
Nie umiem teraz obrobić tych danych w taki sposób, żeby móc to wyświetlić w tabeli jaką pokazałem wyżej. Przydałoby mi się mieć coś na zasadzie:
id_zawodnik vs id_zawodnik2
1 vs 2 (JEŚLI TAK: echo pkt_zawodnik1, JEŚLI NIE: echo 'bd')
1 vs 3 (JEŚLI TAK: echo pkt_zawodnik1, JEŚLI NIE: echo 'bd')
1 vs 4
2 vs 1
2 vs 3
2 vs 4
...
Może mi ktoś podpowiedzieć jak mogę otrzymać wyniki w takiej formie (php lub mysql)?