プロが教える店舗&オフィスのセキュリティ対策術

SQL文についてです。

表Aで列1と列2が'◎'のものについて、列3,列4,列5をそれぞれ'○','△','×'に更新したい場合は下記でOKだと思います。
UPDATE 表A
SET 列3 = '○', 列4 = '△', 列5 = '×'
WHERE 列1 = '◎' AND 列2 = '◎'

列1と列2をキーとして表Aと結合できる表Bが存在するとします。
条件に表Bの列6が'□'だった場合を追加したい時、どのような方法で行えば良いのでしょうか?
内部結合やWHERE EXISTSなどをいろいろ調べたのですが、SQL文に慣れていないためかうまくいきません。
初歩的な質問で申し訳ありませんが過去質問で参考になるものがなかったのでお願いします。

A 回答 (2件)

UPDATE 表A


SET 列3 = '○', 列4 = '△', 列5 = '×'
WHERE 列1 = '◎' AND 列2 = '◎'
AND EXISTS
( SELECT 1 FROM 表B
WHERE 表B.列1 = 表A.列1
AND 表B.列2 = 表A.列2
AND 表B.列6 = '□' )
じゃだめですか。
    • good
    • 5
この回答へのお礼

nora1962さんありがとうございます。
実際の処理は複雑条件であり私が初心者であることで検証に時間がかかりましたが教えていただいた通りの構文でうまくいきました!
大変ありがとうございました。

お礼日時:2009/01/11 11:25

おまけです(内部結合の例)



UPDATE 表A
SET 列3 = '○', 列4 = '△', 列5 = '×'
FROM 表A a
INNER JOIN 表B b ON b.列1 = a.列1 AND b.列2 = a.列2 AND b.列6 = '□'
WHERE a.列1 = '◎' AND a.列2 = '◎'
    • good
    • 10
この回答へのお礼

jamshid6さんありがとうございました。
お二方にやさしくアドバイスいただき感謝すると同時に、もっと自分で苦労して調べなくてはと実感しました。
今回は日限があったためじっくり調べる時間が取れず焦っておりました。←言い訳

お礼日時:2009/01/11 11:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A