我正在创建一个存储过程,它将使用从过程参数和其他表传递的数据填充我的表。
我有一个包含三列的表(cart_id、product、sold_quantity)。现在,我想用存储过程填充此表。在此表中,cart_id
将作为存储过程参数传递,而其他两列从另一个表中填充。我想从其他表中插入最新的 10 行,对于所有这些行,它们cart_id
都是相同的
首先我试过,
BEGIN
insert into my_table (cart_id, product, sold_quantity) VALUES (cart_id, (Select `product`, `sold_quantity` from other_table limit 10))
END
在这里,cart_id 在过程参数中传递。这显然是行不通的,因为列数不匹配。所以,我试过,
BEGIN
insert into my_table (cart_id, product, sold_quantity) VALUES (cart_id, (Select `product` from other_table limit 10), (Select `sold_quantity` from other_table limit 10))
END
这返回错误Subquery returns more than 1 row
有什么方法可以用自变量参数和其他表的组合中的数据填充我的表吗?
问题是
VALUES
在您的特定情况下。使用INSERT INTO SELECT
。询问。
示例 考虑以下数据
程序
过程调用
结果
https://dbfiddle.uk/PWCgNy0j