我需要一些关于mysql更新的帮助
我有三张桌子如下。

tbl1
id eid quantity
1 3      2
2 4      3

tbl2
tid eid qnty status type
 1  3    1      1         1
 2  3    0      1         0
 3  4    1      1         1
 4  4    0      1         0

tbl3
id tid type
1  1   1
2  2   0
3  3   1
4  4   0

我需要一个SQL更新:
查找X
找到Y
如果x-y>0,则将tbl2中的状态更新为0
x=tbl1.数量-总和(tbl2.qnty),其中tbl1.eid=tbl2.eid,type=1
换句话说:
x=tbl1。该eid中的数量-该eid中的总和(tbl2.qnty),其中type=1
因此,对于eid 4=2,x;对于eid 3=1,x
y=从tbl3中选择count(tbl3.id),其中tbl2.tid=tbl3.tid,type=0按tid分组
因此,tid 2=1,tid 4=1
如果x-y>0,则将tble2中的状态更新为0
最后的结果是tbl2.tid:4的状态将更新为0,因为2-1=1
感谢您的贡献。

最佳答案

我现在不能检查,所以我不能百分之百确定语法,但我认为您可以这样做:
更新tbl2
在tbl1.eid=tbl2.eid上连接tbl1
在tbl2上连接tbl3.tid=tbl3
设置状态=0
其中tbl2.type=1和
tbl1.quantity-sum(tbl2.qnty)-(从tbl3中选择count(tbl3.id),其中tbl2.tid=tbl3.tid,type=0 group by tid)>0

关于mysql - MySQL更新查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4259754/

10-08 23:23