• ベストアンサー

片方だけ抽出する方法(SQL)

下記のようなテーブルがあるとします。 Aテーブル コード 値 X 10 Y 20 Z 30 Bテーブル コード 値 Y 20 Y 30 Z 30 A.コード=B.コードとA.値=B.値という条件に一致しないデータのうち、 Aテーブルのデータのみ取り出したいです。 この場合だと、「X 10」のみ結果として欲しいです。 どのようなSQLを作成すればいいか、分かりません。 考え方の問題なのかもしれませんが、ぜひ教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

外部結合というヤツです。 SELECT A.* FROM Aテーブル A,Bテーブル B WHERE A.コード=B.コード(+) AND B.コード IS NULL http://www.shift-the-oracle.com/sql/left-right-outer-join.html バージョンにより、書式が微妙に異なります。

oka-zuu
質問者

お礼

回答ありがとうございました。 記述していただいたSQLを参考に改変し、 得たい結果を取得することができました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

select * from A minus select * from B;

oka-zuu
質問者

お礼

回答ありがとうございました。 こちらのSQLでも試させていただきます。

すると、全ての回答が全文表示されます。

専門家に質問してみよう