Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: złączenia tabel
Forum PHP.pl > Forum > Przedszkole
źrebak
Mam w zapytaniu tzw samozłączenie:
  1. <?php
  2. SELECT o1.sygnatura, o1.nieruchomosc, o1.operacja, o3.liczba
  3. FROM oferty AS o1
  4. LEFT JOIN oferty AS o2 ON ( o2.sygnatura = o1.sygnatura AND o2.parametr =)
  5. LEFT JOIN oferty AS o3 ON ( o3.sygnatura = o1.sygnatura AND o3.parametr =10 )
  6. WHERE o1.parametr =26 AND o1.tekst = 'AKTUALNA' AND o1.operacja =1 AND o1.nieruchomosc =2 LIMIT 0 , 30
  7. ?>


Do wygenerowanej tabeli chcialbym jeszcze 'podpiac' tabele, ktora jest w tej samej bazie - ale ma inna nazwe - 'zdjecia', robie to wiec tak:
  1. <?php
  2. SELECT o1.sygnatura, o1.nieruchomosc, o1.operacja, o3.liczba
  3. FROM oferty AS o1
  4. LEFT JOIN oferty AS o2 ON ( o2.sygnatura = o1.sygnatura AND o2.parametr =)
  5. LEFT JOIN oferty AS o3 ON ( o3.sygnatura = o1.sygnatura AND o3.parametr =10 )
  6. LEFT JOIN zdjecia AS o4 ON (o4.sygnatura=o1.sygnatura) // lub USING (sygnatura)
  7. WHERE o1.parametr =26 AND o1.tekst = 'AKTUALNA' AND o1.operacja =1 AND o1.nieruchomosc =2 LIMIT 0 , 30
  8. ?>


Co prawda, serwer nie zglasza bledu - ale czas wykonania tego zapytania przekracza max. czas - co skutkuje wywaleniem bledu 500 Internal Server Error. Gdzie robie blad?
kszychu
POindeksuj pola, którymi złączasz.
źrebak
juz drugi raz pisze mi ktos ' poindeksuj pola'. Co to znaczy i po co sie to robi?
nospor
Wydawalo mi sie ze ci to wyjasnilem wczesniej. Sluzy to do przyspieszenia wyszukiwania danych. A jak to sie robi to chyba tez pisalem, ale moze nie do konca, bo nie znam phpmyadmina
źrebak
a nie mozna dokonac tego zlaczenia bez wczesniejszego indeksowania?
nospor
można, żaden problem. Sęk w tym, że wówczas będzie wyszukiwało wolniej.
Przecież wyraźnie jest napisane. Indexowanie sluży do przyspieszenia wyszukiwania.
SongoQ
@źrebak Wydaje mi sie ze lepiej jest kupic pierwsza lepsza ksiazke o SQLu a nie takie pytania zadawac. Teoria baz danych to podstawa, bez tego nie ruszysz. Przeczytaj - pomysl - nie wiesz to wtedy napisz.
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.