Skocz do zawartości

Wyszukiwanie w bazie - połączenie dwóch tabel


michalk

Rekomendowane odpowiedzi

Witam!

Mam stronę opartą o kilka działów tematycznych xxy, xxz, xxw. Chciałbym aby skrypt wyszukiwarki pobiebierał dane ze wszsytkich z nich a nie tylko z jednej. Próbowałem to zrobić jako:

SELECT * FROM xxy, xxz WHERE title like '%a%'

oraz

SELECT * FROM xxy AND xxz WHERE title like '%a%'

ale za każdym razem problem. Czy może mi ktoś powiedzieć jak połączyć te bazy by wyniki były ustalane na podstawie dwóch.

P.S. Proszę nie pisać o manualnym przerzucaniu rekordów z jednej tabeli do innej bo taka opcja w tym przypadku nie wchodzi w grę.

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

Czytaj bledy mysqla, bo pewnie miales taki:

Column 'title' in where clause is ambiguous

Ten sposob, ktory ty probujesz powinien wygladac tak:

SELECT * FROM xxy, xxz WHERE xxy.title like '%a%' AND xxz.title like '%a%'

Ale przy roznej ilosci rekordow w tabelach spelniajacych ten warunek bedziesz mial dublujace sie rekordy.

Moze jednak UNION:

(SELECT * FROM xxy WHERE title like '%a%')

UNION

(SELECT * FROM xxz WHERE title like '%a%')

Ale jesli bedziesz mial rozne struktury tabel, to wyskoczy blad:

The used SELECT statements have a different number of columns

Czyli zamiast * nalezy wpisac np: id, title itp

Nie znam innego sposobu na rozwiazanie tego problemu - ale to nie oznacza, ze go nie ma :)

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności