su una pagina web (php e mysql) dovrei implementare una ricerca fulltext
la query funziona benissimo ed è molto veloce, ecco un esempio:
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
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
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: