Stored procedures 帮助编写存储过程/SQL查询错误

Stored procedures 帮助编写存储过程/SQL查询错误,stored-procedures,Stored Procedures,我有一个表tblcategory,其中包含列categoryid、shopid、title、logicalcode 我有第二个表tblproduct,其中包含列productid、shopid、producttitle、price、logicalcode,可用 我有第三个表categoryproduct,其中列categoryproductid、categoryid、productid 我有一个网格视图,用于显示给定类别中的产品,其中包含列producttitle和logicalcode 我编写

我有一个表
tblcategory
,其中包含列
categoryid、shopid、title、logicalcode

我有第二个表
tblproduct
,其中包含列
productid、shopid、producttitle、price、logicalcode,可用

我有第三个表
categoryproduct
,其中列
categoryproductid、categoryid、productid

我有一个网格视图,用于显示给定类别中的产品,其中包含列
producttitle
logicalcode

我编写了一个存储过程,输入参数为
categoryid
(必需),以获取该类别中的产品列表:

@categoryid int
AS
BEGIN
  SELECT P.Title, P.LogicalCode 
  FROM tblProduct AS P 
  JOIN  tblCategory AS C  
  WHERE P.LogicalCode=C.LogicalCode AND
  WHERE C.CategoryID=@categoryid    
END
但是我得到了接近“WHERE”条件的错误


谁能帮我一下吗?

你有两个
WHERE
条款。应该是:

其中p.LogicalCode=C.LogicalCode和
C.CategoryID=@CategoryID

编辑

好的,试试看

SELECT P.Title,P.LogicalCode  
FROM tblProduct P  
JOIN tblCategory C   
ON P.LogicalCode=C.LogicalCode  
WHERE C.CategoryID=@categoryid
应该是:

SELECT P.Title,P.LogicalCode 
FROM tblProduct AS P JOIN  tblCategory AS C    
WHERE P.LogicalCode=C.LogicalCode 
AND  C.CategoryID=@categoryid   

CategoryID是INT吗?很明显,你有两个WHERE's,这是错误的,但你在下面提到,你取了一个WHERE's,它仍然是错误的。我得到了相同的错误,比如Msg 156,级别15,状态1,过程uspCategoryFetch,第10行关键字“WHERE”附近的语法不正确。你还需要指定你将P和C连接在一起的是什么。例如从tblProduct P在P.CategoryKey=C.ID上加入tblCategory C…..不用担心-这是两个
WHERE
s和坏
JOIN的组合