【发布时间】:2014-08-04 09:52:25
【问题描述】:
我的查询(这给了我正确的输出)
SELECT
CONCAT(Category.CategoryName, ': ',Product.ProductName) AS SearchOut,
Product.ProductID
FROM Product
,Category
,ParentCategory
,ProductCategory
WHERE ParentCategory.ParentCatID = Category.CategoryID
AND Category.CategoryID = ProductCategory.CategoryID
AND ProductCategory.ProductID = Product.ProductID
但这将是一个搜索功能,所以我想要我的LIKE。
这是我的LIKE SQL 从第一个继续
AND Category.CategoryName LIKE '%' + @SearchString + '%'
OR Product.ProductName LIKE '%' + @SearchString + '%'
OR Product.Description LIKE '%' + @SearchString + '%'
OR Product.Artnr LIKE '%' + @SearchString + '%'
OR ParentCategory.ParentCatName LIKE '%' + @SearchString + '%'
那么查询全乱了,全错了,行数多了两倍。
就像存在的每一行或其他东西的额外行。
我也试过先在Joins里写sn-p,但是都错了。
Product 应该只在结果中出现一次,但实际上存在于多个类别中的除外,但随后您会看到,因为 categoryname 和 productname 被包含。
感谢您的帮助!
【问题讨论】:
-
Bad habits to kick : using old-style JOINs - ANSI-92 SQL 标准不鼓励使用旧式 逗号分隔的表格列表 样式(多于 20 年前)- 改用 正确 ANSI
JOIN语法!
标签: sql sql-server tsql stored-procedures sql-like