アプリ版:「スタンプのみでお礼する」機能のリリースについて

OracleのSQL文を教えて下さい。

-tableA-
key1,key2
001,1
002,2
002,1
003,2

-tableb-
key1,key2
001,1
002,1

取得したいレコード
002,2
003,2

お願いします。

A 回答 (3件)

select * from tableA


where not exists (
select * from tableB
where tableA.key1 = tableB.key1
and tableA.key2 = tableB.key2
);

でどうでしょう?
    • good
    • 8
この回答へのお礼

できましたー!
ありがとうございました。

お礼日時:2003/04/18 14:47

> EXISTSとどちらが早いんでしょうね。


私の同僚の話ですと、どちらも僅差であり、状況によって変わる、とのことです。
多分、内部での検出のロジックは同じ道を辿るのではないでしょうか?
ですから、ソースに落としたときにわかりやすい方をお勧めします。
    • good
    • 1

SELECT Key1,Key2 from tableA


MINUS
SELECT Key1,Key2 from tableb
;

でできます。
速度的には一件ずつの比較になるので遅いです。
    • good
    • 0
この回答へのお礼

できました。
ありがとうございます。
EXISTSとどちらが早いんでしょうね。

お礼日時:2003/04/18 14:46

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