如何解决尝试使用参数和多个连接创建存储过程
我正在尝试创建一个带有一个参数并连接三个表的存储过程:OrdersOrders
、Ordered_ProductsOrdered_Products
和 ProductsProducts
。我想要所有没有匹配表的表中的列。该参数在java中使用,让客户能够根据他们的用户ID搜索订单。
这是我想出来的:
CREATE PROCEDURE sp_seeOrder
@user_id
AS
SELECT
O.order_id,O.order_quantity,O.user_id,O.Status,O.order_date,O_P.orderID,O_P.product_code,P.product_id,P.product_name,P.price
FROM
Orders AS O
FULL JOIN
Ordered_Products ON O.order_id = O_P.orderID,RIGHT JOIN
Products P ON O_P.product_code = P.product_id
WHERE
user_id = @user_id;
我收到多个错误:
消息 156,级别 15,状态 1,过程 sp_seeOrder,第 4 行 [批处理起始行 213]
关键字“SELECT”附近的语法不正确。
消息 156,级别 15,状态 1,过程 sp_seeOrder,第 9 行 [批处理开始行 213]
关键字“RIGHT”附近的语法不正确。
我做错了什么?
解决方法
在@user_id 参数中放入数据类型。我认为它是一个 INT,因为它是一个 ID。并删除“ON O.order_id = O_P.orderID”之后的额外内容。更正后的查询应如下所示:
CREATE PROC sp_seeOrder
@user_id INT
AS
SELECT
O.order_id,O.order_quantity,O.user_id,O.Status,O.order_date,O_P.orderID,O_P.product_code,P.product_id,P.product_name,P.price
FROM Orders AS O
FULL JOIN Ordered_Products AS O_P
ON O.order_id = O_P.orderID
RIGHT JOIN Products P
ON O_P.product_code = P.product_id
WHERE user_id = @user_id;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。