こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Oracle delete文について

お世話になります。
Oracle初心者です。

delete文の条件で他テーブルの列の値(列名は両方テーブルとも同じ)
と同じ所の行を削除したいと思っているのですが、
コンパイルエラーになります。
基本的な書き方が悪いのでしょうか。
どなたかご親切な方、御教示頂きたく宜しくお願い致します。

       記

delete from
(
select 受注NO from T受注明細
where T受注明細.受注NO = D売上.受注NO)

投稿日時 - 2011-09-10 15:56:05

QNo.7001820

困ってます

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

こんにちわ。

> delete from
> (
> select 受注NO from T受注明細
> where T受注明細.受注NO = D売上.受注NO)

こう言う事でしょうか?
delete from T受注明細
where 受注NO in (select 受注NO from D売上);

又は
delete from T受注明細 T1
where exists (select null from D売上 T2 where T1.受注NO = T2.受注NO);

削除する件数と索引の有無によって、どちらのSQL が高速化は異なりますので
ご注意下さい。

投稿日時 - 2011-09-10 16:15:51

お礼

ありがとうございます。
大変助かります。
月曜日会社で試してみます。

投稿日時 - 2011-09-10 19:07:22

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問