mysql中两个表之间的减法

  • 本文关键字:之间 两个 mysql mysql
  • 更新时间 :
  • 英文 :


我正在为我的研究做一个网店,它已经完成了,但我想通过做这个加入的东西使它更好的标记,但我不明白这是如何工作的。我试过内连接,但这让我更困惑。

我有两个表,看起来像这样:

价格:

id | name | price  | raktaron   
1  | why  | 9000   | 20

raktaron的意思是'in stock'

superuser_cart:

id | item             | quantity | value  | name        |date   
1  | whytshirt - L    | 2        | 18000  | why         |2021-09-17 09:11:02

在结帐时,我想减去购物车。数量从价格。raktaron

像这样:

UPDATE prices 
SET raktaron = raktaron-superuser_cart.quantity 
WHERE name = superuser_cart.name;

您可以尝试:

UPDATE prices 
Inner JOIN superuser_cart ON prices.name = superuser_cart.name
SET prices.raktaron = prices.raktaron - superuser_cart.quantity;
select * from prices; 

或带有指定名称

UPDATE prices 
INNER JOIN superuser_cart ON prices.name = superuser_cart.name
SET prices.raktaron = prices.raktaron - superuser_cart.quantity
WHERE prices.name = "some thing";

正如其他人在评论中指出的那样,除非name在两个表中都是唯一的,否则基于name进行更新不是一个好主意。

如果你有更多的数据示例,并提供两个表的表描述,也许会有另一个更好的

解决方案。根据您的数据,下面的查询工作,但如果您在superuser_cart表的name列中有两个why值,则不会.

update  prices p 
inner join superuser_cart s
on p.name=s.name 
set p.raktaron=p.raktaron-( select quantity 
from superuser_cart 
where name ='why') ;

不工作的演示:https://www.db-fiddle.com/f/7yUJcuMJPncBBnrExKbzYz/30

根据您的数据演示:https://www.db-fiddle.com/f/7yUJcuMJPncBBnrExKbzYz/29

最新更新