Mysql
 sql >> Database >  >> RDS >> Mysql

Procedura:abbinare (spazio di ricerca) a (unire con la colonna di un'altra tabella)

Sembra che tu debba usare un'espressione di corrispondenza FULLTEXT nella tua condizione di join.

Non ho mai usato una corrispondenza fulltext in una condizione di join, quindi non sono sicuro che funzionerà, ma ipoteticamente potrebbe farlo:

SELECT DISTINCT c.*
FROM corpuses c JOIN searches s 
  ON (MATCH(c.title, c.body) AGAINST (s.term));

Ok, l'ho provato usando le definizioni della tua tabella e alcuni dati di esempio dal manuale MySQL. Ecco una query che funziona (testata con MySQL 5.1.30):

SELECT *
FROM corpuses 
WHERE MATCH(title, body)
  AGAINST ( (SELECT GROUP_CONCAT(term SEPARATOR ' ') FROM searches) 
    IN BOOLEAN MODE);