Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> złączenia tabel
źrebak
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 4.05.2005

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
kszychu
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


POindeksuj pola, którymi złączasz.
Go to the top of the page
+Quote Post
źrebak
post
Post #3





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 4.05.2005

Ostrzeżenie: (0%)
-----


juz drugi raz pisze mi ktos ' poindeksuj pola'. Co to znaczy i po co sie to robi?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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
Go to the top of the page
+Quote Post
źrebak
post
Post #5





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 4.05.2005

Ostrzeżenie: (0%)
-----


a nie mozna dokonac tego zlaczenia bez wczesniejszego indeksowania?
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.
Go to the top of the page
+Quote Post
SongoQ
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


@ź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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 18:45