更新两个表 - 错误 - 'where clause' 中的未知列 'product_varities.product_varities_id'
Update Two Tables -error - Unknown column 'product_varities.product_varities_id' in 'where clause'
我正在尝试更新两个 table,从一个 table 获取数据并更新第二个 table。但是我不断收到错误消息:
1054 - Unknown column exception in MySQL.
Orderlines
orderlinesid
quantity
product_varities_id (fk)
Product Varities
product_varities_id (pk)
quantity
存储过程:
BEGIN
DECLARE quantityToAddBack int(5);
select orderlines.quantity from orderlines where orderlines.order_id = iorderid AND product_varities.product_varities_id = iproductvaritiesid into quantityToAddBack;
-- do update FIRST
UPDATE orderlines set orderlines.`status_id` = 2
WHERE orderlines.order_id = iorderid AND orderlines.product_varities_id = iproductvaritiesid;
-- then update quantity
update product_varities set product_varities.quantity = product_varities.quantity + quantityToAddBack
WHERE product_varities.product_varities_id = iproductvaritiesid;
END
我不明白我做错了什么,我正在执行两个语句,因为根据我对这里的研究,我发现你不能一次更新两个 table。
从给定的描述看来,iorderid
和 iproductvaritiesid
是过程的输入值。
所以过程中的查询应该是
select
ol.quantity into quantityToAddBack
from orderlines ol
join product_varities pv on pv.product_varities_id = ol.product_varities_id
where ol.order_id = iorderid ;
-- do update FIRST
UPDATE orderlines set `status_id` = 2
WHERE order_id = iorderid
AND product_varities_id = iproductvaritiesid;
-- then update quantity
update
product_varities
set quantity = quantity + quantityToAddBack
WHERE product_varities_id = iproductvaritiesid;
我正在尝试更新两个 table,从一个 table 获取数据并更新第二个 table。但是我不断收到错误消息:
1054 - Unknown column exception in MySQL.
Orderlines
orderlinesid
quantity
product_varities_id (fk)
Product Varities
product_varities_id (pk)
quantity
存储过程:
BEGIN
DECLARE quantityToAddBack int(5);
select orderlines.quantity from orderlines where orderlines.order_id = iorderid AND product_varities.product_varities_id = iproductvaritiesid into quantityToAddBack;
-- do update FIRST
UPDATE orderlines set orderlines.`status_id` = 2
WHERE orderlines.order_id = iorderid AND orderlines.product_varities_id = iproductvaritiesid;
-- then update quantity
update product_varities set product_varities.quantity = product_varities.quantity + quantityToAddBack
WHERE product_varities.product_varities_id = iproductvaritiesid;
END
我不明白我做错了什么,我正在执行两个语句,因为根据我对这里的研究,我发现你不能一次更新两个 table。
从给定的描述看来,iorderid
和 iproductvaritiesid
是过程的输入值。
所以过程中的查询应该是
select
ol.quantity into quantityToAddBack
from orderlines ol
join product_varities pv on pv.product_varities_id = ol.product_varities_id
where ol.order_id = iorderid ;
-- do update FIRST
UPDATE orderlines set `status_id` = 2
WHERE order_id = iorderid
AND product_varities_id = iproductvaritiesid;
-- then update quantity
update
product_varities
set quantity = quantity + quantityToAddBack
WHERE product_varities_id = iproductvaritiesid;