create database mecze;
use mecze;
create table mecze(id int auto_increment primary key,
id_gracza int,
data date,
wynik int
);
insert into mecze values(1, 1, "2017-04-25", 2),
(2, 2, "2017-04-25", 0),
(3, 3, "2017-04-25", 2),
(4, 4, "2017-04-25", 2),
(5, 5, "2017-04-25", 0),
(6, 6, "2017-04-25", 0);
create table wygrane(id_gracza int, wygrane int);
insert into wygrane values(1,2),
(3,2),
(4,2),
(45,4),
(20,6),
(35,8);
create table wyniki(id_gracza int,wynik int);
insert into wyniki values(1,1),
(3,1),
(4,1),
(45,2),
(20,3),
(35,4);
select * from wyniki where wynik=(select max(wynik) from wyniki);
Tabele wykonałem poglądowo jak to powinno wyglądać po wykonaniu odpowiedniego zapytania select().
1. Najpierw trzeba przekonwertować z tabeli mecze dane z kolumny wynik. Czyli cyfra 2 to 1 punkt. 4 to 2, 6 to 3, 8 to 4 itd....
2. Z przekonwertowanych liczb trzeba wybrać największą, czyli w tym przykładzie będzie to:
, bo jest liczbą przekonwertowaną z liczby 8.
Myślę, że wiesz o co mi chodzi.
W skrócie:
Teraz tylko trzeba z tabeli pierwszej wykonać zapytanie select(), które przekonwertuje liczby z tabeli pierwszej na wynik, czyli jak wcześniej napisałem 2 na 1, 4 na 2 itd.... Następnie trzeba wykonać podzapytanie select(), które z przekonwertowanych liczb policzy kto wygrał, czyli ma najwięcej punktów.
Chciałbym jednak podkreślić to iż, mój kod jest tylko kodem poglądowym.
Trzeba sobie postawić pytanie: Co trzeba zrobić, aby z tabeli pierwszej, czyli mecze przejść do tabeli trzeciej, czyli wyniki poprzez polecenie select(), wykonując zapytania i podzapytania.