Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] pobieranie danych z 3 tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
bajeczka
Witam, proszę o pomoc z zapytaniem pobierającym dane z 3 tabel. Wygląda to mniej więcej tak:

tabela1:
id
nazwa
typ

tabela2:
id
tabela1_id
nazwa
wartosc

tabela3:
tabela1_id
nazwa

Do 1 rekordu z tabeli1 może być przypisanych wiele z tabeli2 i jeden z tabeli3.

Mam takie zapytanie:
  1. SELECT * FROM tabela1, tabela2, tabela3
  2. WHERE tabela1.id = tabela.tabela1_id AND tabela1.typ = tabela3.tabela1_id


Lecz zwraca ono powtarzające sie wiersze z tabeli1 gdy w tabeli2 jest przypisany więcej niż 1 rekord.
Co zrobić żeby dołączało ono rekordy z tabeli2 do jednego wyniku tabeli1, bez powtarzania tego samego dodając tylko końcówki nazwa i wartość którymi się różnią te wyniki ? Można to w ogóle zrobić z poziomu zapytania ?

Z góry dziękuję za pomoc.
AxZx
mozna
wtedy uzywa sie innych łączeń
left join, right join, inner join
bajeczka
Hmm..

Próbowałem z LEFT JOIN, INNER JOIN takie zapytanie:

  1. SELECT * FROM tabela1 LEFT JOIN tabela2 ON (tabela2.tabela1_id = tabela1.id) LEFT JOIN tabela3 ON (tabela3.tabel1_id = tabela1.typ)

  1. SELECT * FROM tabela1 INNER JOIN tabela2 ON (tabela2.tabela1_id = tabela1.id) INNER JOIN tabela3 ON (tabela3.tabela1_id = tabela1.typ)


Jednak to też zwraca powtarzające się rekordy.
Mógłbyś podać jakiś przykład nawet z dwoma tabelami, żeby nie powtarzało za każdym razem rekordu z tabela1 tylko dodawało do niego rekordy z tabela2 ?

Dzięki, bajeczka
AxZx
nie wiem, moze zle cie zrozumialem.
poslij export z tej bazy (wraz z danymi).
moze trezeba jakies warunki wstawic?smile.gif
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.