Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Konstrukcja zapytania dla 3 tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
Spooky2
Witam. Mam taki problem, nie wiem jak go ugryzc. Mianowicie, chce wykonac zaytanie do trzech tabel. Najproscie byloby zrobic w where tabela1.pole = tabela2.pole and tabela2.pole2 = tabela3.pole2 przy czym klucz obcy z tabeli2 tj pole2 nie zawsze wystepuje w tabeli3 :-((( Chcialbym aby w przypadku braku tabela3.pole2 w wynikowej tablicy pojawialo sie np 0 albo NULL i aby liczba wynikow byla rowna liczbie wynikajacej z placzenia tabela1.pole = tabela2.pole...
a nie wynikiem polaczenia tych trzech tabel. Oczywiscie zapisane przez mnie "polaczenie" w where, jest w tym przypadku nieprawidlowe. Jak skonstruowac tozapytanie?
tvister
Instrukcja 'left join' kolego. Dodatkowo 'isnull'.
Spooky2
Myslalem, ze joinem mozna laczyc dwie tabele. Poprosze jakis przyklad.
tvister
t1 join t2 on (t1.id = t2.id) join t3 on (t2.id=t3.id) itd itd itp...
do innych kombinacji odsyłam do maunala tu
Spooky2
ok, thx, gdzie nie spojrze widze, ze tylko proste przyklady laczenia dwoch tabel. THX mysle, ze teraz to jus sobie poradze.

Jednak bede potrzebowal podpowiedzi :-/ Strasznie sie rozlazlo to zapytanie - 4,5 sek 350 rekordow - masakra.
Problem stanowi LEFT JOIN na tabeli, ktora, nie koniecznie musi zawierac elementy obecne w pozostalych dwoch tabelach :-(
Jakie wskazowki, na co go zamienic?
Mchl
Cytat(Spooky2 @ 5.12.2009, 23:32:44 ) *
ok, thx, gdzie nie spojrze widze, ze tylko proste przyklady laczenia dwoch tabel. THX mysle, ze teraz to jus sobie poradze.

Jednak bede potrzebowal podpowiedzi :-/ Strasznie sie rozlazlo to zapytanie - 4,5 sek 350 rekordow - masakra.
Problem stanowi LEFT JOIN na tabeli, ktora, nie koniecznie musi zawierac elementy obecne w pozostalych dwoch tabelach :-(
Jakie wskazowki, na co go zamienic?


Pokaż swoje zapytanie i jego EXPLAIN.
Struktura tabel też by się przydała.
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.