2010-10-28 10 views
0

J'ai deux tables: Travail, et Clé de travail. JobKeyword contient trois champs: Id, JobId et les mots-clés , de sorte que chaque Job a ses JobKeyword -s. Comment puis-je utiliser la recherche de texte intégral dans SQL Server pour interroger la table des tâches avec des mots-clés de la table JobKeyword?SQL Server - Comment interroger une table pour trouver des correspondances avec des mots-clés provenant d'une autre table?

Ceci est mon SQL actuelle:

WITH JobRN AS 
(
    SELECT TOP (@End) searchTable.*, ROW_NUMBER() OVER (ORDER BY searchTable.RANK) AS RowNum 
    FROM FREETEXTTABLE([Job], *, @Keywords) AS searchTable 
    ORDER BY RANK 
) 

SELECT * FROM [Job] 
INNER JOIN JobRN ON Job.Id = JobRN.[Key] 
WHERE RowNum BETWEEN @Start AND @End 
ORDER BY [DATE] 

Actuellement, il recherche par tous les champs de la table de travail. Comment puis-je le modifier afin qu'il effectue une recherche par table JobKeyword (mais renvoie les résultats de Job bien sûr)?

Merci.

Répondre

-1

Je ne suis pas grand avec les index de texte libre mais puisque personne d'autre n'a répondu. Sans plus de détails c'est un peu de deviner, mais il semble que vous voulez juste remplacer FREETEXTTABLE ([Job], *, @ Keywords) avec FREETEXTTABLE ([JobKeyword], *, @Keywords).

Mais cela suppose qu'il existe un index de texte libre.