我试图一次搜索多个表格作为搜索项。我的查询是:在SQL中搜索多个表格
SELECT item.ItemID
FROM Inventory.Item item
JOIN Inventory.Category catR // each item can be in several categories
ON catR.ItemID = item.ItemID
JOIN Category.Category cat
ON cat.CategoryID = catR.CategoryID
JOIN Inventory.Brand bran
ON bran.BrandID = item.BrandID
WHERE
item.Description LIKE '%' + @term + '%'
OR
item.Description LIKE '%' + @term
OR
item.Description LIKE @term + '%'
OR
item.Description = @term
OR
cat.CategoryName LIKE '%' + @term + '%'
//same pattern as item.Description used to search CategoryName
//...
OR
bran.BrandName LIKE '%' + @term + '%'
//same pattern as item.Description used to search BrandName
//...
但结果并不如预期。我在“Casement”类别中有大约50个项目,但当term ==“Casement”只有在item.Description中有“Casement”的项目时才会返回。
我做错了什么?我应该做更好的方法吗?
尝试'LEFT JOIN's。任何缺乏品牌的Inventory.Item(“BrandID”IS NULL或以其他方式被指定为dis-integrated)都将被SQL排除,无论其“CategoryName”是什么。 – pilcrow 2009-11-11 22:40:49