Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql] Powiązanie kolumn - w jednym rekordzie kilka indeksów, Potrzebuje pomocy przy powiązaniu zapytania
artusio
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 10.01.2006

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


Potrzebuje pomocy przy powiązaniu dwoch tablic:

kategorie

id | kategoria
1 | apartament
2 | dom mieszkalny
3 | budynek jednorodzinny
4 | wieżowiec
5 | mieszkanie
......

miejscowosci

id | miejscowosc
1 | warszawa
2 | poznan
3 | wroclaw
4 | oborniki
5 | Komorniki

nieruchomosci

id | mid | kid |nazwa | [oznaczają odpowiednio id oferty | id miejscowosci | id_kategorii]
1 | 1 | 2 |Apartament 34 m2 w Warszawie
2 | 2,4,5 | 1,5 |Mieszkanie w okolicy Poznania

Przy założeniu ze dla danej oferty nieruchomości można wybrac tylko jedną kategorię i jedną miejscowość powiązanie tych tabel wygladaloby następująco (jak w przypadku pierwszego wiersza w tabeli nieruchomosci):

Select nieruchomosci.id, nazwa, miejscowosc, kategoria
from nieruchomosci, kategorie, miejscowosci
where nieruchomosci.mid=miejscowosci.id
and nieruchomosci.kid=kategorie.id

To zapytanie w przypadku pierwszym zwróci wynik:
1, Apartament 34m2 w Warszawie, Warszawa, apartament

A jak wykonać zapytanie aby powiązać drugi wiersz (możliwość wielokrotnego wyboru miejscowosci i kategorii), aby dała wynik
2, Mieszkanie w okolicy Poznania, Poznań,Oborniki,Komorniki, apartament,mieszkanie

Zakładam, że można wybrać kilka miejscowosci i kilka rodzajów

Nie chciałbym tworzyć dodatkowych kolumn dla dodatkowych miejscowosci i dodatkowych kategorii w bazie nieruchomosci: np mid1, mid2, mid3, kid1, kid2, kid3.

Czy można skonstruować takie zapytanie przy zaprezentowanej przeze mnie strukturze tabeli i polach? czy bedzie ono optymalne. Co proponujecie?
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 12:09