我有两张桌子:
TBL1
TBL2
STDNum
是公共列。在TBL1中,相同的STDNum可以有多个具有不同ID的行(在TBL2上不是这种情况)。 我想要的结果是更新TBL2中的UpdateMe
列(将其值设置为1 )IF(和仅限IF )TBL1中Check
列的特定 STDNum全部设置为1 。
有人可以帮帮我吗?还是有什么想法?
答案 0 :(得分: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
OR
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