我有两张桌子:
待定1
标准
身份证件
支票
TBL2级
标准
更新名STDNum
是公共列。在TBL1中,同一STDNum可以有多个具有不同id的行(TBL2上不是这样)。我想要的结果是更新TBL2中的UpdateMe
列(将其值设置为1),如果(并且仅当)该特定STDNum的TBL1中的Check
列都设置为1。
有人能帮我吗?或者有什么想法?
最佳答案
UPDATE tbl2 b
INNER JOIN
(
SELECT STDNum
FROM tbl1 s
GROUP BY STDNum
HAVING MAX(s.check) = MIN(s.Check) AND
MAX(s.Check) = 1
) a ON a.STDNum = b.STDNum
SET b.UpdateMe = 1
或者
UPDATE tbl2 b
INNER JOIN
(
SELECT STDNum
FROM tbl1
GROUP BY STDNum
HAVING SUM(Check = 1) = COUNT(*)
) a ON a.STDNum = b.STDNum
SET b.UpdateMe = 1
关于mysql - 由于基于另一个表的case语句,如何更新表? (在Mysql中),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14813230/