![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 18.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
No mam znów problem ;/
posiadam w bazie 3 tabele są relacje tabela = łączenie = tabela
I do races przynalezy kilka wyników z cars... wyjaśnie to obrazowo
I chciał bym w jednym zapytaniu pobrać wszystkie auta które należą do wyścigu. I wsadzić je jakoś do tabily. Aby w jednym okrążeniu foreach wyciągnąć je wszystkie Mógł by ktoś pomóc. Totalnie nie wiem za co się zabrać jak powinno wyglądać zapytanie Ten post edytował demoniczny 21.07.2011, 22:10:43 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Poczytaj o złączeniach czyli o klauzuli JOIN.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 18.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Powiem ci że jeśli chodzi o join to dość u mnie tylko że problem w tym jak pobrać wszystkie 3 rekordy za jednym razem i wsadzić do tablicy?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 18.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Wiesz raczej mi twoje zapytanie nic nie pomaga tak jak napisał phpion tutaj jeszcze muszą być łączenia ale nie wiem zabardzo jak potem wyciągnąć wszystkie wyniki(auta) pasujące do wyścigu dla każdego obkrążenia pętli.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Czyli jednak NIE rozumiesz złączeń, bo JOIN robi dokładnie to co chcesz. Bierzesz sobie cars_race i łączysz z cars oraz określasz jaki race Cię interesuje. Tu masz raptem jeden JOIN by połaczyć i jeden WHERE by okreslić wyścig. Zapytanie do tego utworzone ma długość mniejszą niż Twój post, w którym piszesz, że rozumiesz złączenia
![]() -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 18.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dobra i jak to wsadzic do tablicy aby wygladało tak:
Wyscig => honda, suzuki (Aby 2 wyniki były przy 1 wyscigu.) Ten post edytował demoniczny 22.07.2011, 11:40:33 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
A o GROUP BY słyszał czy akurat spał? Widzę, że bez gotowca sie chyba nie obejdzie:
i w wyniku otrzymasz JEDEN wiersz dla KAŻDEGO wyścigu: Kod nazwa => 'wyscig o zlote majtki', auta => 'honda,suzuki,skyline' Ale możesz też dać i dostaniesz TYLE wierszy dla każdego wyścigu, ILE było w nim samochodów: Kod nazwa => 'wyscig o zlote majtki', auto => 'honda' I to drugie opisałem Ci w swoim poście wyżej, ale w kolejnym napisałeś już coś innego jako przykład i to jest to co jako pierwsze dałem. I nie nie da się tak, by było tyle kolumn w wierszu wyścigu ile samochodów i było to wydajne, bo jeden wyścig będzie miał 5, a inny 2 i co? Co wstawisz do pozostałych kolumn w tym, gdzie są tylko 2 auta? Nulle? Zły pomysł. Lepiej wrzucić to do jednej i sobie już po stronie skryptu php obrobić jak chcesz. Przynajmniej bazy nie zarżniesz jakimiś cudacznymi zapytaniami.nazwa => 'wyscig o zlote majtki', auto => 'suzuki' nazwa => 'wyscig o zlote majtki', auto => 'skyline' Jak widzisz to samo uzyskałem na 2 sposoby, ale każdy z nich kładzie nacisk na coś innego i tylko od tego zależy które będzie użyte. A co innego można było wyczytać w Twoim pierwszych i kolejnych postach jako sens zapytania. Ba... Nawet po ostatnim poście trudno wnioskować jaka ma być struktura wyniku. Czy ma to być: lub
Czy może zawsze będzie to jeden wyścig i forma lub Tak więc trudno zasugerować Ci sensowne rozwiązanie, skoro nawet nie w pełni wiadomo czego chesz w wyniku. Gdyby nie ostatni post to można by zgadywać o co Ci chodzi z tym wkladaniem do tablicy. Zresztą nawet teraz tylko zgaduję i dałem Ci aż CZTERY warianty tego o co pytałeś. Tak nieprecyzyjnie wypowiedziałeś się. I to jest problem piszących tutaj pytania. DLA NICH pytanie jest proste, ale dla odpowiadających i zaawansowanych userów oznacza to nieraz X możliwości odpowiedzi, nieco różniących się, a co za tym idzie, nieraz zupełnie inaczej możliwych do uzyskania. -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 18.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
.
![]() Dziękuje bardzo za pomoc ^^ Ten post edytował demoniczny 22.07.2011, 12:21:31 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 02:37 |