Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] stworzenie zapytania SELECT, phpMyAdmin
pawelt
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 10.11.2011

Ostrzeżenie: (0%)
-----


Witam..
Mam problem ze stworzeniem zapytania SELECT (phpMyAdmin).
Chodzi o to, że posiadam tabelę z miejscowościami:

MIASTA
id_miasta (PK)
nazwa_miasta

drugą tabelę z trasami:

TRASY
id_trasy (PK)
start
koniec

oraz trzecią tabelę z miejscowościami pośrednimi na danej trasie:

PRZEZ
id_trasy (FK)
miasto_posrednie

W kolumnach "start" oraz "koniec" tabeli TRASY start=id_miasta oraz koniec=id_miasta.
Analogicznie w kolumnie "miasto_posrednie" tabeli PRZEZ miasto_posrednie=id_miasta.
Zależy mi na tym, aby miasta zawsze pobierać z jednej tabeli (MIASTA).

I jak teraz wyświetlić tabelę z prawdziwymi nazwami miejscowości na danej trasie?
Np. tak żeby otrzymać taki wynik:

start: Łódź ____ koniec: Lublin ____ miasto_posrednie: Warszawa
start: Łódź ____ koniec: Lublin ____ miasto_posrednie: Radom ____ miasto_posrednie: Puławy
...

Albo chociaż żeby wyświetlić tylko dane z dwóch pierwszych tabel: nazwy miejscowości "start" i "koniec".
Moje próby stworzenia takiego zapytania kończą się uzyskaniem nazwy tylko jednej miejscowości, a następną jest już numer id danego miasta.
Jak zrozumiem ideę, to mam nadzieje, ze dalej sobie poradzę.
Nie wiem, może źle zaprojektowałem bazę - jeśli ktoś byłby uprzejmy coś doradzić, będę wdzięczny.
Pozdrawiam..

Ten post edytował pawelt 10.11.2011, 15:10:49
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ixpack
post
Post #2





Grupa: Zarejestrowani
Postów: 248
Pomógł: 55
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

Ostrzeżenie: (0%)
-----


Wiesz, sam nie jestem ekspertem, ale zamiast wydzielać do osobnej tabeli dodałbym kolumnę "przez", gdzie np. 0 lub id startu oznaczałoby bezpośrednią trasę. Problemik pojawia się, gdy mamy więcej "miast przez" niż jedno. Wtedy nie możemy użyć tej kolumny, bo nie dodamy tam kilku id. Chyba, że będzie to np. varchar i dasz jakiś terminator pomiędzy id'kami i używając wyr. regularne podobnie podpinać nazwy etc. - robi się skomplikowane.
W tym momencie możesz dodać kilka miast przez i wydukać zapytanie, chyba będzie to optymalne - tzn. jak jest teraz. Pobaw się, zobacz... Tylko dla "przez" dodaj inny klucz główny, id_trasy może się przecież powtarzać. Wówczas baza zwróci wynik typu:
start, stop, przez1
start, stop, przez2
start, stop, przez3
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 15:33