Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 25.02.2008 Ostrzeżenie: (0%)
|
witam,
Ciężko mi jest sformułować z czym mam problem więc postaram się opisowo (IMG:style_emoticons/default/smile.gif) Jest baza z 10 tabelami. Wśród nich znajduja się tabele : countries #panstwa
cities #miasta
To co chciałbym osignac to dane w postaci relacji między miastami w poszczególnych państwac tzn. chodzi konkretnie o połczenie komunikacyjne spełniajace takie warunki: każde miasto z polski jest połaczone z kazdym miastem w kazdym panstwie oprócz polski każde miasto w każdym państwie (oprócz polski) jest połaczone tylko z polska Nie wiem czy powinno to być zapytanie do takiej struktury i za kazdym razem generowane dynamicznie, czy powinienem stworzyć widok połaczonych tabel? a moze powinienem stworzyc osobna tabele i wypełnic ja poprzez jakis sktypt php, no nie wiem jak mam ten temat ugryźć (IMG:style_emoticons/default/smile.gif) To co chciałbym z tych danych otrzymac już po wyciagnieciu i formatowaniu to np.: id 1 Warszawa - Berlin (Polska - Niemcy) id 2 Warszawa - Amsterdam (Polska - Holandia) ale np. id n Warszawa - Gdańsk ( Polska - Polska) albo id n Berlin - Amsterdam (Niemcy - Holandia) tego juz nie chce i to ma być wycięte z wyniku. Wydaje mi sie że chyba bede musiał zrobić tabele połczeń i je ręcznie albo półautomatycznie potworzyć :/ |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 61 Dołączył: 20.08.2010 Ostrzeżenie: (0%)
|
Utwórz sobie osobną tabelę połączenia z dwoma kolumnami (city_id_1, city_id_2). Możesz ją uzupełnić nawet zwykłym zapytaniem (poszukaj informacji o "INSERT SELECT")
Zapytanie pobierające pary miast, w których pierwsze jest z polski a drugie nie:
gdzie 1234 to ID Polski |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 25.02.2008 Ostrzeżenie: (0%)
|
Do nowej tabeli i jej wypełniania jeszcze nie doszedłem, natomiast jest progres (IMG:style_emoticons/default/smile.gif)
Wypróbowałem poniższe zapytanie ale coś jeszcze nie bangla - troche je przerobiłem i dostaje juz wyniki
różnice: id polski czyli 1234 u mnie ma wartość 1 w WHERE c2.country_id =28 ID polski nie zwraca wyników wiec zamieniłem na kraj docelowy i dodałem AND c1.country_id =1 zmiany w SELECT to już dla sprawdzenia na nazwach czy działa po tych zmianach dostaje wyniki zaweżone do państw ustwionych w WHERE natomiast używajac takiego zapytania:
dostaje chyba to o co mi chodziło, jeszcze muszę to trochę dopracować |
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 10:35 |