OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

PL/SQLのDELETE文について

  • すぐに回答を!
  • 質問No.135327
  • 閲覧数698
  • ありがとう数4
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 92% (38/41)

PL/SQLでDELETE文を書こうとしているのですが、
文法がわかりません。。。
分かる方がおられましたら、教えてくださいm(_ _)m

今、TABLE1を削除したいのですが、条件がいろいろあって、
以下のように書いてみたのですがダメでした。
こういう書き方は、できないんでしょうか・・・。

削除条件は、TABLE2に存在し、かつ、TABLE2のTENSUが0のもので、
TABLE3が存在しないものです。

DELETETABLE1
FROMTABLE1
,TABLE2
,TABLE3
WHERETABLE1.ID = TABLE2.ID
ANDTABLE2.TENSU = 0
ANDNot Exists (SELECT TABLE3.ID
FROMTABLE3
WHERETABLE3.ID = TABLE2.ID)

説明が下手なので、うまく、伝わっているか、心配なのですが・・・、
よろしくお願いします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル14

ベストアンサー率 33% (1403/4213)

PL/SQLというより、単純なSQLですね。

DELETE TABLE1
WHERE TABLE1.ID in
(select TABLE2.ID
FROM TABLE
WHERE TABLE2.TENSU=0
AND TABLE2.ID Not in
(SELECT TABLE3.ID
TABLE3
WHERE TABLE3.ID=TABLE2.ID
)
)

でしょうかね?
実行確認せずに記述してますので間違ってたらごめんなさい。
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル14

ベストアンサー率 33% (1403/4213)

すみません。一部訂正します。 DELETE TABLE1 WHERE TABLE1.ID in (select TABLE2.ID FROM TABLE WHERE TABLE2.TENSU=0 AND TABLE2.ID Not in (SELECT TABLE3.ID TABLE3 ) ) 通常の数式のルールと同じく、括弧の中から処理され ...続きを読む
すみません。一部訂正します。

DELETE TABLE1
WHERE TABLE1.ID in
(select TABLE2.ID
FROM TABLE
WHERE TABLE2.TENSU=0
AND TABLE2.ID Not in
(SELECT TABLE3.ID
TABLE3
)
)

通常の数式のルールと同じく、括弧の中から処理されます。
Deleteの条件文(select table2.id以降)でテストしてみて
OKならdelete文を追加してください。

なお、3テーブルともIDにINDEXを作成した方が速いかな?
お礼コメント
laertes_h

お礼率 92% (38/41)

早速の回答、ありがとうございます!
INを使わないといけなかったんですね・・・。
SQLもあまりやったことないので。
これを参考に、PG作ってみたら、できました。
ホントにありがとうございました(^^)
投稿日時 - 2001-09-14 14:32:16


このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ