2

我有 2 张桌子:

TBL1

  • 标准编号
  • ID
  • 查看

TBL2

  • 标准编号
  • 告诉我

STDNum公共列。在 TBL1 中,同一个 STDNum 可以有多个具有不同 ID 的行(在 TBL2 上不是这种情况)。我想要的结果更新UpdateMeTBL2 中的列将其值设置为 1)如果(并且仅 IF)该特定STDNumCheck 的 TBL1 中的列全部设置为 1 。

有人可以帮我吗?或者有什么想法吗?

4

1 回答 1

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
于 2013-02-11T13:46:22.963 回答