ricerca fulltext con un join

Reck

Nuovo Utente
29 Gen 2011
2
0
0
su una pagina web (php e mysql) dovrei implementare una ricerca fulltext
la query funziona benissimo ed è molto veloce, ecco un esempio:
Codice:
SELECT id, titolo, oggetto, descrizione, MATCH(titolo,oggetto,descrizione) 
AGAINST('parola da cercare') AS attinenza FROM libri 
ORDER BY attinenza DESC

il problema è che devo assolutamente avere anche un dato (es: autore) che si trova in una tabella (autori) diversa da "libri", quindi pensavo di fare una semplice JOIN tra le due tabelle che hanno un campo in comune (id nella tabella libri e id_libro nella tabella autori)

ad esempio

Codice:
SELECT p.id,p.titolo,p.oggetto, p.descrizione,
c.autore, MATCH (p.titolo,p.oggetto,p.descrizione) AGAINST ('parola da cercare') AS attinenza 
FROM libri p
LEFT JOIN autori c ON c.id_libro = p.id
WHERE
MATCH (p.titolo,p.oggetto,p.descrizione) AGAINST ('parola da cercare') GROUP BY p.titolo  ORDER BY attinenza DESC

ma questa query è lentissima e i dati mostrati non sono uguali alla prima query
insomma non risulta valida.

La domanda è questa: è possibile ottenere una risposta come la prima query ma ottenendo anche il valore del campo "autore" che si trova nell'altra tabella?
sbaglio qualche cosa? esiste un sistema valido alternativo?

grazie
 
Ultima modifica:
Hai provato levando questa parte dalla seconda query: WHERE
MATCH (p.titolo,p.oggetto,p.descrizione) AGAINST ('parola da cercare') GROUP BY p.titolo

che nella prima non è presente?
 

Discussioni simili