Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL] problem z zapytaniem łączonym (3 tabele)
Forum PHP.pl > Forum > Przedszkole
kowalcook
Witam

mam taki oto kod

  1. $zapyt1 = mysql_query("SELECT .....kolumny.z.bazy..... FROM baza_pierwsz, baza_druga, baza_trzecia WHERE baza_pierwsza.jakas_kolumna!='0' AND baza_druga.jakas_kolumna>='$zmienna' AND baza_pierwsza.jakas_kolumna=baza_druga.jakas_kolumna AND baza_pierwsza.jakas_kolumna!=baza_trzecia.jakas_kolumna AND baza_trzecia.jakas_kolumna='$zmienna2' ORDER BY baza_pierwsza.jakas_kolumna DESC LIMIT $zmienna3,30");



samo zapytanie wyczytuje to co trzeba z małym wszakże wyjątkiem, a mianowicie:


każdy rekord wywoływany jest potrójnie (jest dublowany, a w zasadzie trójblowany smile.gif ),

są wyjątki że (ew podwójnie gdyż jedno z trzech zdublowanych (z trójblowanych smile.gif rekordów) prawidłowo odczytuje warunki a drugi i trzeci dubel już jakby je ignorował)



dlaczego on dubluje zapytania i dlaczego jeden z tych trzech dubli rozpoznaje warunki prawidłowo i je filtruje odpowiednio a drugi i trzeci ("dubel") już nie ?
JoShiMa
Albo

  1. SELECT DISTINCT .....kolumny.z.bazy..... FROM baza_pierwsz, baza_druga, baza_trzecia


albo

  1. SELECT .....kolumny.z.bazy.....
  2. FROM baza_pierwsz LEFT OUTER JOIN baza_druga ON ...
  3. LEFT OUTER JOIN ON baza_trzecia
kowalcook
Witaj



niestety DISTINCT odpada, brałem go już wcześniej pod uwagę ale on wtedy wyświetla wszystkie rekordy nawet te których warunki nie obejmują przy pierwszej pętli gdyż jako że ich nie ma to je pokazuje z drugiej pętli, w której już te warunki w zapuyaniu nie działają poprawnie




drugi sposób też nie pomaga


odkryłem jednakże że ilość zapętleń x2, x3, x4 itd uzależniona jest od ilosci rekordów z znajdujących się w bazie_trzeciej


wtedy miałem ich trzy dlatego "trójdoblowało" smile.gif mi ale bynajmniej widzę już jakąś zależność co ni jak nie pozwala mi wykryć gdzie leży problem smile.gif


może te wskazówki pomogą wam pomóc mi w tym problemie smile.gif



pozdro kowalcook
JoShiMa
Cytat(kowalcook @ 11.09.2008, 16:54:11 ) *
odkryłem jednakże że ilość zapętleń x2, x3, x4 itd uzależniona jest od ilosci rekordów z znajdujących się w bazie_trzeciej

To normalne i jak się robi JOIN to trzeba odpowiednio ustawić warunek ON żeby tego uniknąć.
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.