我需要根据用户提供的值选择所需值的某些部分来插入数据。
在场景中,客户端将提供staff_name, customer_name
和product_name
。 INSERT
将从其他表中查找必要的数据以提取相应的ID。
这就是我目前所拥有的
INSERT INTO [Order](product_id,
customer_id,
staff_id,
vehicle_regno,
order_details,
total_price,
order_date)
SELECT
stock.id,
customers.id AS Expr1,
Staff.id AS Expr2,
@vehicle_regno AS Expr3,
@order_details AS Expr4,
@total_price AS Expr5,
@order_date AS Expr6
FROM
stock
CROSS JOIN
customers CROSS
JOIN
Staff
WHERE
(stock.name = @stock_name)
AND (customers.name = @customers_name)
AND (Staff.name = @staff_name)
但它没有插入任何记录
感谢您的帮助
答案 0 :(得分:1)
我认为解决方案在于简化它。这是我的建议,
运行您的选择查询并确认它是否返回结果。
如果确认,请编写存储过程,
a)运行选择查询并在变量中设置结果。
b)使用给定变量执行Insert语句。
答案 1 :(得分:1)
实际上,这里有两个单独的查询,可以单独测试。
我的意思是,你为什么不先测试这部分:
SELECT
stock.id,
customers.id AS Expr1,
Staff.id AS Expr2,
@vehicle_regno AS Expr3,
@order_details AS Expr4,
@total_price AS Expr5,
@order_date AS Expr6
FROM
stock
CROSS JOIN
customers CROSS
JOIN
Staff
WHERE
(stock.name = @stock_name)
AND (customers.name = @customers_name)
AND (Staff.name = @staff_name)
看看是否有任何数据返回。