• 締切済み

SQL 取得した値について

力を貸してください。 教えてください。 (1)SELECT 項目1 FROM 表 (2)SELECT 項目2 FROM 表2   WHERE = A <> 「(1)で取得した項目1」 ※(1)で取得した値を(2)のWHERE句の条件で使用したいのですが、 どの方法であればよろしいでしょうか? 回答の方をお願いします。

みんなの回答

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

いろいろ考え方があります。 > (1)SELECT 項目1 FROM 表 が必ず1行しか返さないのなら SELECT 項目2 FROM 表2 WHERE = A <> ( SELECT 項目1 FROM 表 ) と書けます 複数行返す可能性がある場合は、その全てに一致しない場合、抽出する場合は SELECT 項目2 FROM 表2 WHERE = A <> all ( SELECT 項目1 FROM 表 ) SELECT 項目2 FROM 表2 WHERE = A not in ( SELECT 項目1 FROM 表 ) ただし、項目1にNULLが含むとこのクエリは1行も返しません。注意が必要です。 not exists を使うことも出来ます。 SELECT 項目2 FROM 表2 WHERE not exists ( SELECT 1  FROM 表 where 表.項目1 = 表2.A ) このSQLは項目1がNULLの場合でも行を返します。

04102000
質問者

お礼

大変丁寧な回答をして頂きありがとうございます。 早速実行してみます。

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

SELECT 項目2 FROM 表2 WHERE A IN ( SELECT 項目1 FROM 表 )

04102000
質問者

お礼

回答して頂き大変感謝してます。 ありがとうございます。

関連するQ&A