我有 2 个表:
TBL1
- 标准数
- 身份证
- 检查
TBL2
- 标准数
- 更新我
STDNum
是公共(public)列。在 TBL1 中,同一个 STDNum 可以有多个具有不同 ID 的行(在 TBL2 中不是这种情况)。 我想要的结果是更新 TBL2 中的 UpdateMe
列(将其值设置为 1)如果(< em>并且仅当) Check
TBL1 中该特定STDNum 的列全部设置为 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/