複数テーブルが絡む複雑なUPDATE文の書き方
こんばんは
次のような2つのテーブルを参照して条件を指定するUPDATE文はどのように書けばよいのでしょうか?
Parentsテーブル
ID, Name, HasChild, AGE
1, Tanaka, True, 20
2, Yamamoto, False, 25
3, Suzuki, True, 30
4, Kobayashi, True, 20
5, Sato, True, 25
Children
ID, Name, ParentID, Male, Flag
1, Taro, 1, True, 0
2, Hanako, 1, False, 0
3, Ichiro, 3, True, 0
4, Jiro, 4, True, 0
5, Subroh, 5, True, 0
やりたいこと:20歳の親を持つ男の子のみにフラグを付ける
Parentテーブルで、親が子持ち(HasChild = True)で、年齢が20歳の人だけを対象に
Childrenテーブルでその親の子(Parents.ID = Children.ParentID)が男の子(Male = True)だった場合、
Flag を 0 から 1 に変更する
実行結果
Children
ID, Name, ParentID, Male, Flag
1, Taro, 1, True, 1
2, Hanako, 1, False, 0
3, Ichiro, 3, True, 0
4, Jiro, 4, True, 1
5, Subroh, 5, True, 0
結果は、Tanaka TaroくんとKobayashi Jiroくんのフラグが1になります。
複数テーブルのSELECTについては勉強してきましたが、こういうパターンは初めてでわかりません。エクセルVBAから.mdbファイルを扱う時に使います。Microsoft.Jet.OLEDB.4.0のADODB.Connectionを使っています。
よろしくお願いします。
お礼
具体的でとても詳しく、わかりやすい御説明を頂きありがとうございました。 やはり自己流(社内の他の人が書いた物は参考にしているのですが)ではダメだと痛感しています。 今回は皆様から教えて頂いた内容で乗り切りますが、今後も勉強を続けようと思います。 ありがとうございました。