1

我有一个名为 A 的表
A {
   x int,
   y int,
   z int
}
,我有另一个表 B 和
B {
   x int
   代码字符串,
   值字符串
}。
B-> 代码可以有 2 个值:{code1,code2} 基于哪个值也不同。
现在我需要用 y = B.value 如果 code ='code1' 和 z = B.value 如果 code ='code2' 更新 A。我正在尝试在单个查询中执行此操作。
我尝试了通常的更新:
update A,B set A.y=if(B.code='code1',B.value,A.y), A.z=if(B.code='code2',B.value,A,z) where A.X=B.x .
但它只更新 y。我认为这是因为 A 中的每一行都创建了 2 行,并且我猜更新被覆盖了。我的推理正确吗?有没有办法在更新查询中做到这一点

4

0 回答 0