Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyszukiwanie po wartościach z innej tabeli
TomASS
post
Post #1





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Witam,

Mam dwie tabele:

1. transporty [ID, Numer, NumerFaktury, Waluta, Masa, Odleglosc]
2. miejsca [ID, Rodzaj(zaladunek/rozladunek), ID_transport, Miejscowosc, Kod, Ulica]

Dzięki takiemu czemuś jeden transport może posiadać kilka miejsc załadunku oraz kilka miejsc rozładunku, dodawanie miejsc jest dziecinnie proste - wystarczy dodać do tabeli miejsca odpowiedni rekord.
Transporty wyświetlam oczywiście:
  1. SELECT * FROM transporty

Trasę pobieram już wewnątrz pętli:
  1. SELECT * FROM miejsca WHERE ID_transport=$id_transp AND Rodzaj='zaladunek';



Sprawa komplikuje się, gdy chcę utworzyć filtr:
  1. SELECT * FROM transporty WHERE $filtr;

który zwróci mi wszystkie transporty które pojechały np. do Bytomia. Co powinienem wstawić w $filtr?

Dziękuję za pomoc.

Ten post edytował TomASS 26.04.2010, 09:13:54
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Powinno śmigać:
  1. SELECT DISTINCT transporty.* FROM transporty JOIN miejsca ON (miejsca.ID_transport = transporty.ID) WHERE miejsca.Miejscowosc = 'Bytom';

Twoje idzie w tym samym kierunku, ale odwrotnie łączysz tabele. Nie wiem czy ma to jakieś znaczenie np. pod kątem optymalizacji - dobrze by było gdybyś ktoś się na ten temat wypowiedział.

//Edit:
Chyba jednak lepiej zacząć od tabeli miejsca. Z tego co pamiętam to powinno się zaczynać od tej tabeli, która na wstępie odrzuci najwięcej niepasujących rekordów.

Ten post edytował phpion 26.04.2010, 10:48:46
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: 6.10.2025 - 23:42