Zajmuję się tworzeniem strony, na której ludzie mogą publikować swoje domy do wynajęcia. Używam PHP 5.2.0 i MySQL 5+Jak dołączyć do wielu tabel powiązanych z innymi tabelami
publikacje są przechowywane w tabeli jak to
ta_publications
+---+-------------+------+
|id | name | date |
+---+-------------+------+
| 1 | name_001 | ... |
| 2 | name_002 | ... |
| 3 | name_003 | ... |
+---+-------------+------+
mam zmierzających publikacje, które mają "cechy", takie jak "internet", „made usługa "," telewizja satelitarna "itp.
Te funkcje mogą ulec zmianie w przyszłości. Chcę je dodawać/usuwać/modyfikować, więc zapisuję je w bazie danych w tabeli.
ta_features
+---+-------------+
|id | name |
+---+-------------+
| 1 | Internet |
| 2 | Wi-Fi |
| 3 | satelital tv|
+---+-------------+
które są związane z publikacjami stosując następującą tabelę
ta_publication_features
+---+-------------+----------------+
|id | type_id | publication_id |
+---+-------------+----------------+
| 1 | 1 | 1 |
| 2 | 2 | 1 |
| 3 | 3 | 1 |
+---+-------------+----------------+
Myślę, że to dość łatwe do zrozumienia; Istnieje publikacja o nazwie name_001, która ma Internet, Wi-Fi i telewizję satelitarną.
mam te same dane ze schematu dla obrazów, przechowywać je w tej tabeli
ta_images
+---+-------------+
|id | src |
+---+-------------+
| 1 | URL_1 |
| 2 | URL_2 |
| 3 | URL_3 |
+---+-------------+
i skorzystać z poniższej tabeli odnoszą je do publikacji
ta_publication_images
+---+-------------+----------------+----------+
|id | img_id | publication_id | order |
+---+-------------+----------------+----------+
| 1 | 1 | 1 | 0 |
| 2 | 2 | 1 | 1 |
| 3 | 3 | 1 | 2 |
+---+-------------+----------------+----------+
kolejność kolumna podaje kolejność, w której publikacje powinny być wyświetlane podczas wyświetlania pojedynczej publikacji.
Philipp Reichart dostarczył mi zapytanie, które wyszuka i uzyska wszystkie publikacje z pewnymi funkcjami. Działa na potrzeby publikowania publikacji, nie mogę go zmodyfikować, aby zwrócić mi potrzebne dane.
Więc pomyślałem, że uruchomię to zapytanie i zdobędę wszystkie publikacje, które spełniają kryteria wyszukiwania, a następnie wykorzystam inne zapytanie do ich wyświetlenia.
Lista tych publikacji zawiera wszystkie dane publikacji (wszystko na ta_publikacjach) + wszystkie jego funkcje + najważniejsze (zamówienie 0) obraz src.
Mogę, dla każdej publikacji, mieć dwa proste zapytania, które będą zwracać, oddzielnie, najważniejszy obraz i wszystkie jego funkcje, ale przy wyświetlaniu 25 publikacji na stronie będzie to 1 zapytanie wyszukiwania + (2 kwerendy na publikację * 25 publikacji) = 51 różnych zapytań, wyraźnie niezbyt wydajnych.
EDIT:
Moje pytanie jest, w jaki sposób można utworzyć kwerendę SQL, który, biorąc pod uwagę niektóre identyfikatory publikacji, powróci: wszystkie dane publikacji (wszystko na ta_publications) + wszystkich jego funkcje + najważniejszym (zamów 0) image src
Dobrze napisany pytanie skoro jesteś tak nowy. :) + głosuj – Layke
Nie zadałeś właściwie pytania. Pokaż, co chcesz osiągnąć. –
Pytasz więc o zapytanie, które zwraca wszystkie publikacje według identyfikatora, łącznie z ich funkcjami i górnym obrazem? –