Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyszukiwanie fulltext i łączenie tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
kacpero1094
Mam dwie tabele z danymi. W obydwu mam zdefiniowane klucze fulltext. W tej "zasadniczej" na jedną kolumnę, a w tej przyłączanej na dwie kolumny. Potrzebuję przeszukać wszystkie te kolumny. Ułożyłem więc zapytanie:
  1. SELECT *, MATCH(t2.aName,t2.aDescription,t1.bTitle) AGAINST (?) AS `score` FROM table1 AS t1 JOIN table2 AS t2 ON t1.bId = t2.bId WHERE MATCH(t2.aName,t2.aDescription,t1.bTitle) AGAINST (?) ORDER BY `score` DESC LIMIT 30

To zapytanie zwraca błąd #1210 - nieprawidłowe argumenty do match. Potrzebuję tak zbudować zapytanie, żeby wykonywało opisane wyżej zadanie. Mam nadzieję, że to, które tu napisałem, pomoże lepiej zrozumieć o co mi chodzi smile.gif
Proszę o informację, czy w ogóle jest opcja, żeby coś takiego zrobić.
erix
Bez łączonej dzieje się to samo?

Pola przeszukiwane mają założony indeks FULLTEXT?
kacpero1094
Bez łączonej jest ok. Bez łączenia to ja umiem cacy smile.gif Chodziło mi tylko o to, czy można "łączyć" klucze fulltext z dwóch tabeli w jednym zapytaniu.
Pisałem:
Cytat
W obydwu mam zdefiniowane klucze fulltext

tak, są do przeszukiwanych kolumn (pól)
BaN
Zastosuj dwukrotnie MATCH, raz na pierwszym indeksie, drugi raz na drugim i chyba warunek OR, nie wynika z treści jaki jest odpowiedni
kacpero1094
Warunek AND, ale będę miał dwie trafności (score) i jak to posegregować? Niby można spróbować zrobić order by (`score1`+`score2`), ale czy to będzie efektywne?
W każdym razie spróbuję i napiszę co i jak.
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.