![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 13.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam pewien problem... gdyż nie wiem jak mam połączyć zapytania SQL w jedno (obecnie baza mi się strasznie krzaczy z powodu bardzo wielu zapytań) myślałem o JOINie, ale nie mam pomysłu jak go użyć, a jak już jest, to niestety nie idzie... A więc tak. Mam dwie tabele. - wyniki MeczID | SezonID | LigaID | MeczData | GospodarzID | GoscID | BramkiGospodarz | BramkiGosc - bramki ID | MeczID | LigaID | SezonID | Pilkarz | DruzynaID | Minuta Teraz robiłem to tak : Pobierałem wyniki z jakiegoś zakresu dat w danej lidze, później jak wyświetlałem wierszami wyniki, to robiłem zapytanie WHERE MeczID = '$mecz' AND DruzynaID = '$data[GospodarzID]' i wyświetlałem strzelców goli gospodarzy. To samo robiłem dla gosci. Czyli do jednego meczu robiłem dodatkowo 2 zapytania... :/ A jak meczów było np na stronie 10, to robiłem 20 zapytań + zapytanie o wyniki. Dlatego mam pytanie o pomoc... jak to zapytanie skonstruować i czy jest taka możliwość, żeby zrobić to w jednym zapytaniu i dopiero jakoś to w skrypcie poukładać ? Z góry dziękuję za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował Rafiki23 8.09.2008, 22:53:02 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy dobrze zrozumiałam co chcesz zrobić, więc odpowiadam trochę po omacku.
Zapytanie:
w miejsce gwiazdki musisz wpisać pola z obu tabel które chcesz pobrać W ten sposób możesz pobrać wszystkie bramki dla każdego meczy meczu a warunek WHERE ogranicza ci mecze do wybranego przedziału czasowego i ligi. W ten sposób dla każdego meczy dostaniesz tyle rekordów ile było bramek. masz zdublowane info o meczach na przykład jeśli w miejsce * wpiszesz: w.MeczID,w.MeczData,w.GospodarzID,w.GoscID,w.BramkiGospodarz, w.BramkiGosc, b.Pilkarz, b.DruzynaID,b.Minuta Dostaniesz coś w tym stylu 15 2008-04-12 druzynaA druzynaB 0 3 Kowalski druzynaB 9:12 15 2008-04-12 druzynaA druzynaB 0 3 Kowalski druzynaB 20:05 15 2008-04-12 druzynaA druzynaB 0 3 Nowak druzynaB 52:23 27 2008-04-13 druzynaC druzynaD 1 1 Mazurek druzynaC 16:49 27 2008-04-13 druzynaC druzynaD 1 1 Bal druzynaD 49:17 i tak dalej Przeczesując rekordy pętlą możesz sobie ładnie te dane zapakować w jakieś tablice i potem nimi zarządzać. Jedna uwaga. Zupełnie niepotrzebnie (moim zdaniem) masz zdublowane w tabeli bramki takie pola jak LigaID | SezonID Wystarczy pole MeczID, które jednoznacznie łączy dany rekord z rekordem w tabeli wyniki gdzie te dane już są. Poczytaj trochę o redundancji danych (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował JoShiMa 9.09.2008, 09:53:31 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 02:34 |