我有一张叫做A的桌子
A {
x int,
y int,
z int
}
我有另一张桌子B和
B {
x int
代码串,
值字符串
}。
B->代码可以有2个值:{code1,code2},基于哪个值也不同
现在我需要更新A,其中y = B.value,如果code ='code1',z = B.value,如果code ='code2'。我试图在单个查询中执行此操作
我尝试了通常的更新:
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行,并且我猜想更新会被覆盖。我的推理是否正确?并且有任何方法可以在更新查询中执行此操作