我需要一些幫助,這個MySQL更新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
查找Ÿ
然後在tbl2的更新狀態爲0,如果X - Y> 0
X = TBL1 .quantity - sum(tbl2.qnty)where tbl1.eid = tbl2.eid AND type = 1
換句話說:
X = tbl1.quantity在於EID - 總和(tbl2.qnty)在EID WHERE類型= 1
因此,X爲EID 4 = 2和X爲EID 3 = 1
Y = SELECT COUNT(tbl3.id)FROM TBL3 WHERE tbl2.tid = tbl3.tid AND型= 0 GROUP BY TID
因此TID 2 = 1和TID在tble2如果4 = 1
更新後的狀態0 X - Y> 0
最終結果將是tbl2.tid:4的狀態將更新爲0,因爲2 - 1 = 1
您讚賞(s)。
已從別處獲得幫助,並且這是腳本:update tbl2 set status = 0 where type = 0 AND eid in (select distinct EID從 ( 選擇A.eid,X,Y 從 ( SELECT tbl1.eid,(tbl1.quantity - 總和(tbl2.qnty))AS X FROM TBL1,TBL2 WHERE tbl1.eid = TBL2。 EID AND TYPE = 1 GROUP BY tbl1.eid ),爲 JOIN ( SELECT COUNT(tbl3.id)AS Y,tbl2.eid FROM TBL2,TBL3 WHERE tbl2.tid = tbl3.tid AND tbl2.type = 0 GROUP BY tbl2.tid )as B ON A.eid = B.eid HAVING X - Y> 0 )as C ); – 2010-11-25 10:55:09