Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Utilisation de la recherche en texte intégral dans SQL Server 2008 sur plusieurs tables et colonnes

En utilisant FREETEXTTABLE, il vous suffit de concevoir un algorithme pour calculer le rang fusionné sur chaque résultat de tableau joint. L'exemple ci-dessous incline le résultat vers les résultats de la table des livres.

SELECT b.Name, a.Name, bkt.[Rank] + akt.[Rank]/2 AS [Rank]
FROM Book b
INNER JOIN Author a ON b.AuthorID = a.AuthorID
INNER JOIN FREETEXTTABLE(Book, Name, @criteria) bkt ON b.ContentID = bkt.[Key] 
LEFT JOIN FREETEXTTABLE(Author, Name, @criteria) akt ON a.AuthorID = akt.[Key]
ORDER BY [Rank] DESC

Notez que j'ai simplifié votre schéma pour cet exemple.