![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 4.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam
mam taki mały problemik. mam bazę danych ( dość sporą ) , w której znajduje się kilka tabel. Stworzyłem zapytanie odwołujące się do trzech tabel i wszystko działa pięknie ale chciałbym zmodyfikować troche zapytanie i nie tworzyć dwóch odrębnych zapytań tylko jedno. Mianowicie wygląda to mniej więcej tak:
a wyniki obu zapytań wyświetlam razem. chciałbym zastosować uproszczenie i zapytać tak:
I w tym momęcie mogę jechać po zakupy na miasto:) tak długo mieli to zapytanie i nie daje wyników. Może ktoś wie dlaczego?? Chciałbym aby zapytanie działało tak że wybiera mi z bazy np rekordy w których znajdyję się szukana fraza w polu2 i polu4 (pola tekstowe) ale nie dublowało wyników Tzn. stosując pierwszą wersję podwójnych zapytań otrzymuje podwójne wyniki - wyświetla mi te rekordy gdzie fraza znajduje się zarówno w polu2 jaki i w polu4, często wyświetlając dwa takie same rekordy gdyż pierwsze zapytanie pokazuje rekord dla którego fraza jest w polu2 a nstępnie pokazuje rekord gdzie fraza jest w polu4, a ponieważ często jest tak że taka sama fraza może znaleźć się w polu 2 oraz polu4 zatem wyświetla 2 takie same rekordy. Jak temu zaradzić?? Może ma ktoś ciekawy pomysł(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Ten post edytował patigo 17.03.2005, 08:59:49 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze to tak:
INSTR bedzie szybsze niz LIKE jesli chcesz tylko wyszukac dany ciag. Pomiedzy tymi dwoma wersjami nie wiem czy bedzie roznica, ale jak juz sprawdzisz to sie pochwal, ktore rozwiazanie wygralo, chetnie sie dowiem (po cichu obstawiam nr 1). Poza tym koniecznie dodaj indexy na nastepujace pola: tabela1.pole3 tabela2.pole2 tabela2.pole4 tabela3.pole5 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 15:16 |