2

私は2つのテーブルを持っています:

TBL1

  • STDNum
  • ID
  • 小切手

TBL2

  • STDNum
  • UpdateMe

これSTDNumは共通の列です。TBL1 では、同じ STDNum に異なる ID を持つ複数の行を含めることができます (TBL2 ではそうではありません)。私が望んでいた結果は、TBL2 の列更新することUpdateMeです(その値を 1 に設定します) IF (および IF のみ)Check その特定の STDNum の 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 に答える