我有一个名为 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 行,并且我猜更新被覆盖了。我的推理正确吗?有没有办法在更新查询中做到这一点
问问题
107 次