Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zapytanie do 5 tabel
dado
post 28.09.2007, 11:06:40
Post #1





Grupa: Zarejestrowani
Postów: 194
Pomógł: 2
Dołączył: 12.04.2004
Skąd: Częstochowa

Ostrzeżenie: (10%)
X----


Wtam.
Zablokowałem się na zapytaniu do kilku tabel. Wcześniej nie robiłem az takich duzych zapytań.
Mam kilka tabel:

1. produkty
2. produkty_warianty
3. produkty_cechy
4. produkty_zdjecia
5. produkty_opisy

dane razem tworzą pełny opis produktu. Tabele 0d 2-5 trzymają w sobie id produktu (prid) z tabeli 1.
No i właśnie nie idzie mi wyciąganie wszytkich produktów wraz z danymi z tabel 2-5

próbowałem i doszedłem do czegoś takiego ale nie działa.

  1. SELECT a.*, a.* , c.* , d.* , e.*
  2. FROM produkty a,
  3. produkty_warianty b,
  4. produkty_cechy c,
  5. produkty_zdjecia d,
  6. produkty_opisy e
  7. WHERE b.prid=a.id AND c.prid=a.id AND d.prid=a.id AND e.prid=a.id


Będę wdzięczny za podpowiedź

Ten post edytował dado 28.09.2007, 11:09:00
Go to the top of the page
+Quote Post
Cezar708
post 28.09.2007, 11:25:30
Post #2





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


w zasadzie zapytanie jest dobre, ale wystarczy że tylko w jednej tabeli z 2 do 5 nie będzie odpowiadającego prid do id w pierwszej tabeli to nie pojawi się wynik,

Być może tak Ci coś pokaże, wtedy będzie trza myśleć dalej jak to usprawnić:

  1. SELECT a.*, b.* , c.* , d.* , e.*
  2. FROM produkty a
  3. LEFT OUTER JOIN produkty_warianty b ON (b.prid=a.id)
  4. LEFT OUTER JOIN produkty_cechy c ON (c.prid=a.id)
  5. LEFT OUTER JOIN produkty_zdjecia d ON (d.prid=a.id)
  6. LEFT OUTER JOIN produkty_opisy e ON (e.prid=a.id)
Go to the top of the page
+Quote Post
dado
post 28.09.2007, 11:47:41
Post #3





Grupa: Zarejestrowani
Postów: 194
Pomógł: 2
Dołączył: 12.04.2004
Skąd: Częstochowa

Ostrzeżenie: (10%)
X----


o dzięki doszedłem też do tego tylko inna drogą:
  1. SELECT
  2. o.id , o.name ,
  3. i.pricea , i.namew
  4. FROM nr_pozycja_item AS o,
  5. nr_pozycja_wariant AS i
  6. ...
  7. WHERE i.prid = o.id


tylko żę problem powstał bo w przypadku w tabelach od 2-5 jest wiecej niz jeden rekordów dla prid = id tabeli 1 to twoży n elementów tablicy w zalezności
od liczby rekordów. A ja potrzebuje żeby jednemu rekordowi tabeli 1 odpowiadał jeden rekord w zwracanej tablicy.
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 Wersja Lo-Fi Aktualny czas: 12.06.2025 - 10:44