Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sql] dzialanie w bazie, trudne :)
Forum PHP.pl > Forum > Bazy danych > MySQL
Wieviór
Mam takie dośc trudne zagadnienie. no więc...
Mam 2 tabele w jednej bazie w MySQL
1. Tabela piłkarska(klub, bramki strzelone, bramki stracone, punkty)
2. Tabela meczów(home, away, home gol, away gol)

No i w pierwszej mam klub np. Liverpool

I chce żeby pole bramki strzelone mialo wartosci wszystkich goli strzelonych przez Liverpool w tabeli mecze...

Czyli pole Bramki strzelone w Liverpool(powiedzmy ze bedzie jeszcze pole id w 1 tabeli dla ulatwienia sprawy) ma miec automatyczne dane takjakby... ma ktos pomysłquestionmark.gif smile.gif
lukaswoj
Niewiem, czy dobrze rozumiem twoją koncepcję, ale
Cytat
powiedzmy ze bedzie jeszcze pole id w 1 tabeli dla ulatwienia sprawy

Żeby ułatwić sprawę do końca to musisz też mieć pole identyfikujące drużynę w tablicy 2 bo i naczej nie będziesz w stanie powiązać ze sobą rekordów z obydwóch tablic.

No a co do tego uzupełniania się liczb - jeśli używasz mySQL'a to musisz to zrealizować na poziomie aplikacji. Czyli po każdej zmianie zliczać łączną sumę bramek i uaktualniać tabelę nr 1.
Wieviór
Tzn. masz jakiś pomysł na pełne rozwiązanie... po polsku bardziej biggrin.gif
rogrog
Rozumiem o co ci chodzi -

Odwoływałbyś się zapytaniem np.

[sql:1:fac93ee1d5]SELECT klub, gole FROM kluby;[/sql:1:fac93ee1d5]

i byś miał pole gole, które by było sumą goli z tabeli mecze

ALE to chyba nie tak się robi!

[sql:1:fac93ee1d5]SELECT kluby.klub, SUM(...) as gole...[/sql:1:fac93ee1d5]

tak prawdopodobnie mozna by to zrobic w jednym zapytaniu, ale ponieważ jest taka komplikacja (gole home/away) ja bym to po prostu zrobił trzema zapytaniami - tak będzie prościej chociaż raczej tamto byłoby lepsze

[sql:1:fac93ee1d5]SELECT klub FROM kluby WHERE nr=NUMER_KLUBU;
SELECT home_gol WHERE home=NUMER_KLUBU;
SELECT away_gol WHERE away=NUMER_KLUBU;[/sql:1:fac93ee1d5]

oczywiście pod warunkiem, że masz pole nr, a w polach home i away to numery klubów z tabeli kluby.

w przeciwnym wypadku


[sql:1:fac93ee1d5]SELECT klub FROM kluby WHERE klub='Liverpool';
SELECT home_gol WHERE home='Liverpool';
SELECT away_gol WHERE away='Liverpool';[/sql:1:fac93ee1d5]

w każdym razie:

[php:1:fac93ee1d5]
$line_1 = mysql_fetch_assoc(mysql_query('SELECT klub ...'));
$line_2 = mysql_fetch_assoc(mysql_query('SELECT home_gol ...'));
$line_3 = mysql_fetch_assoc(mysql_query('SELECT away_gol ...'));

$klub = $line_1[klub];
$gole = $line_2[home_gol]+$line_3[away_gol];

[/php:1:fac93ee1d5]

lukaswoj - myślę że nie warto tego tak rozwiązywać bo każdy będzie musiał czekać
lukaswoj
Cytat
lukaswoj - myślę że nie warto tego tak rozwiązywać bo każdy będzie musiał czekać

a na co czekać questionmark.gif

każda manipulacja danymi (np dodanie kilku bramek w tabeli nr 2) jest realizowana przez aplikację, więc w każdym takim momencie możn przeprowadzić akutalizajcę tabeli nr 1 - więc nikt nie musiałby na nic czekac, chyba że źle cie zrozumialem smile.gif

Cytat
I chce żeby pole bramki strzelone mialo wartosci wszystkich goli strzelonych przez Liverpool w tabeli mecze...  

Czyli pole Bramki strzelone w Liverpool(powiedzmy ze bedzie jeszcze pole id w 1 tabeli dla ulatwienia sprawy) ma miec automatyczne dane takjakby... ma ktos pomysłquestionmark.gif

Starałem się rozwiązać powyższy problem i nadal twierdze, że jeśli miało by się osiągnąć to co zacytowałem to na poziomie mySQL'a w sposób automatyczny nie da się tego osiągnąc - tylko na poziomie aplikacji.

pozdrawiam
rogrog
chodzilo mi o to, ze dlugo by sie ladowalo
Jabol
Cytat
(...)bazie w MySQL(...)
może zmiana tematu?
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.