我需要一些关于这个 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.quantity - sum(tbl2.qnty) where tbl1.eid = tbl2.eid AND type = 1
换句话说:
X = tbl1.quantity in that eid - sum(tbl2.qnty) in that eid WHERE type = 1
因此 eid 4 的 X = 2 和 eid 3 的 X = 1
Y = SELECT COUNT(tbl3.id) FROM tbl3 WHERE tbl2.tid = tbl3.tid AND type = 0 GROUP BY tid
因此 tid 2 = 1 和 tid 4 = 1
如果 X - Y > 0,则将 tble2 中的状态更新为 0
最终结果将是 tbl2.tid:4 的状态将更新为 0,因为 2 - 1 = 1
感谢您的贡献。
最佳答案
我现在不能检查它,所以我不能 100% 确定语法,但我认为你可以这样做:
更新表2 在 tbl1.eid = tbl2.eid 上加入 tbl1 在 tbl2.tid = tbl3 上加入 tbl3 设置状态=0 其中 tbl2.type=1 和 tbl1.quantity - sum(tbl2.qnty) - (select count(tbl3.id) FROM tbl3 WHERE tbl2.tid = tbl3.tid AND type = 0 GROUP BY tid) > 0
关于MySQL更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4259754/