我需要一些关于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/