我有 2 张桌子:
TBL1
- 标准编号
- ID
- 查看
TBL2
- 标准编号
- 告诉我
是STDNum
公共列。在 TBL1 中,同一个 STDNum 可以有多个具有不同 ID 的行(在 TBL2 上不是这种情况)。我想要的结果是更新UpdateMe
TBL2 中的列(将其值设置为 1)如果(并且仅 IF)该特定STDNumCheck
的 TBL1 中的列全部设置为 1 。
有人可以帮我吗?或者有什么想法吗?
我有 2 张桌子:
TBL1
TBL2
是STDNum
公共列。在 TBL1 中,同一个 STDNum 可以有多个具有不同 ID 的行(在 TBL2 上不是这种情况)。我想要的结果是更新UpdateMe
TBL2 中的列(将其值设置为 1)如果(并且仅 IF)该特定STDNumCheck
的 TBL1 中的列全部设置为 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