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

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

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

       記

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

A 回答 (1件)

こんにちわ。



> 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 が高速化は異なりますので
ご注意下さい。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/09/10 19:07

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

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