Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zapytanie do 5 tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
dado
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ź
Cezar708
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)
dado
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.