暗黙的な結合で削除する行を選択する

キセノイド

多対1の関係にある2つのテーブルがあります。暗黙的な結合を使用して、親テーブルの条件で「子」テーブルのアイテムを選択できます。

select * from child,parent where child.parentid=parent.id and parent.name like 'foobar%'

プレーンよりも子供を削除するためのより良い(より効率的でよりエレガントな)方法はありますか?

delete from child where child.parentid in (select id from parent where parent.name like 'foobar%')

この答えは私ができることを示唆しています:

delete child from child,parent where child.parentid=parent.id and parent.name like 'foobar%'

しかし、PostgreSql(SquirrelSQL経由)では構文エラーが発生します...もちろん、テーブル名が長いので、実際のリクエストは次のようになります。

delete c from child c, parent p where c.parentid=p.id and p.name like 'foobar%'

それで、これはPGによってサポートされていますか、それとも別の方法がありますか?

ボーナスポイント:以下を使用して2つのテーブルからアイテムを削除できますか?

delete from child,parent where child.parentid in (select id from parent where parent.name like 'foobar%')
名のない馬

データ変更CTEを使用して、1つのステートメントで両方のテーブルから削除できます

with deleted_parent as (
  delete from parent
  where name like 'foobar%'
  returning id
)
delete from child
where id in (select id from deleted_parent)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

MYSQL - 行が結合していない場合でも行を選択する

暗黙的結合を明示的結合に変換する

T-SQL:結合を介して削除する行を選択する

JPAによって実行される結合テーブルへの暗黙的な挿入と削除をキャッチします

最も具体的なサブタイプを選択する暗黙の解決

sqlで行を複数回選択して結合する

要素を暗黙的に削除するXSLT

Hiveの暗黙的な結合は常に内部結合ですか?

Jquery Ajax Postが暗黙的なGetを実行するのはなぜですか?

一致する行で再帰結合を使用して選択します

mysql結合の異なる行から値を選択します

暗黙的なオブジェクトコピーを選択的に無効にする

暗黙的な結合を使用して2つのテーブルをクエリするTypedQueryをJPQLで作成する方法

MySQLは左結合がnullである行を選択します

2つの選択を結合する-異なる列名

mysqlの結合とは異なるものを選択する

一致するものがない場合でも、結合された行を選択するにはどうすればよいですか?

結合内の最新の行を選択するSQL

SQL列と行の複数の選択を結合する方法

Hibernateが@ManyToOneアソシエーションの暗黙的な結合のためにCROSS JOINを生成するのはなぜですか?

Couchbase SyncGatewayで暗黙的なOpenId暗黙的なフローが機能することを確認する方法

自己型で暗黙を使用するScala

暗黙的な結合を明示的な結合に書き換える方法は?

選択クエリで過剰な数の結合を生成する休止状態

MySQLで必要なものを選択する方法、おそらく内部結合

内部結合なしの選択でテーブルBSEGを使用する

Circe Jsonを使用すると、実行時に暗黙的な解決が遅くなるのはなぜですか

Rubyでは、文字列を円記号で分割すると、暗黙的な連結が表されますか?

CMDで文字列を選択するために空白を追加しながら行を結合すると、常に機能するとは限りません。

TOP 一覧

  1. 1

    PictureBoxで画像のブレンドを無効にする

  2. 2

    HTTPヘッダー 'SOAPAction'の値はサーバーによって認識されませんでした

  3. 3

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  4. 4

    レスポンシブウェブサイトの一番下にスティッキーなナビゲーションバーを作成するのに問題がある

  5. 5

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  6. 6

    Ansibleで複数行のシェルスクリプトを実行する方法

  7. 7

    Python / SciPyのピーク検出アルゴリズム

  8. 8

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  9. 9

    ZScalerと証明書の問題により、Dockerを使用できません

  10. 10

    Rパッケージ「AppliedPredictiveModeling」のインストール中にエラーが発生しました

  11. 11

    テキストフィールドの値に基づいて UIslider を移動します

  12. 12

    Crashlytics:コンパイラー生成とはどういう意味ですか?

  13. 13

    「埋め込みブラウザのOAuthログイン」を有効にしてコールバックURLを指定した後でも、Facebookのコールバックエラーが発生する

  14. 14

    tf.nn_conv2dとtf.nn.depthwise_conv2dの違い

  15. 15

    CSSはアニメーションで変換および回転します

  16. 16

    BLOBストレージからデータを読み取り、Azure関数アプリを使用してデータにアクセスする方法

  17. 17

    Chromeウェブアプリのウェブビューの高さの問題

  18. 18

    Postmanを使用してファイル付きの(ネストされた)jsonオブジェクトを送信する

  19. 19

    amCharts 4で積み上げ棒グラフの輪郭を描く方法は?

  20. 20

    Officeアドインを使用してOutlookの連絡先のリストにプログラムでアクセスすることは可能ですか?

  21. 21

    Reactでclsxを使用する方法

ホットタグ

アーカイブ