J'ai deux tables dans une base de données SQL Server 2008 dans mon entreprise. Le premier tableau représente les produits que ma société vend. La deuxième table contient les détails du fabricant du produit. Ces tableaux sont définis comme suit:SQL Server 2008 - Requête de texte intégral
Product
-------
ID
Name
ManufacturerID
Description
Manufacturer
------------
ID
Name
Comme vous pouvez l'imaginer, je veux que ce soit aussi facile que possible pour nos clients d'interroger ces données. Cependant, j'ai de la difficulté à écrire une requête de recherche qui pardonne, mais puissante. Par exemple, j'anticipe que les gens fassent des recherches selon des orthographes phonétiques. Pour cette raison, les données peuvent ne pas correspondre aux données exactes dans ma base de données. En outre, je pense que certaines personnes vont chercher d'abord par nom de fabricant, mais je veux que les noms de produits correspondants apparaissent en premier. Sur la base de ces exigences, je travaille actuellement sur la requête suivante:
select
p.Name as 'ProductName',
m.Name as 'Manufacturer',
r.Rank as 'Rank'
from
Product p inner join Manufacturer m on p.ManufacturerID=m.ID
inner join CONTAINSTABLE(Product, Name, @searchQuery) as r
Bizarrement, cette requête est de lancer une erreur. Cependant, je n'ai aucune idée pourquoi. Des gribouillis apparaissent à droite de la dernière parenthèse dans le studio de gestion. L'info-bulle indique "Une expression de type non booléen spécifiée dans un contexte où une condition est attendue". Je comprends ce que cette déclaration signifie. Cependant, je suppose que je ne sais pas comment COneatsTable fonctionne. Qu'est-ce que je fais mal?
Merci
Avez-vous une condition INNER JOIN que vous n'avez pas collée? (par exemple AS ON ON p.ID = r. [KEY]) –