2010-11-22 14 views
2

Ceci est une liée à une autre question posée ici: How to: match (search space) against (join with column from other table)qu'un travail d'expression correspondant du texte intégral dans une condition de jointure

Mais je voulais poster cela comme une suite à l'une des réponses que l'auteur a dit qu'il avait pas essayé, et de voir si quelqu'un pourrait le confirmer.

On dirait que vous devez utiliser un FULLTEXT expression correspondante dans la jointure condition.

Je ne l'ai jamais utilisé un match dans un état texte intégral rejoindre , donc je ne suis pas sûr que ce fonctionnera, mais cette hypothèse pourrait le faire:

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

Répondre

0

Je viens d'essayer une requête comme cela par curiosité et il a échoué pour une raison très claire:

CONTRE prend une chaîne à rechercher, et un modificateur facultatif qui indique quel type de recherche à effectuer. La chaîne de recherche doit être une chaîne littérale, et non une variable ou un nom de colonne. - MySQL Manual on fulltext searches (je souligne)

Découvrez le projet de loi Karwin vous de updated answer dans la question fait allusion à suggérer une requête en utilisant une sous-sélection, qui sélectionnerait chaque ligne du tableau A qui correspond à une valeur dans une colonne « terme » de la table B.