以下のように結合を含んだ削除が可能 DELETE table1 FROM table1 LEFT OUTER JOIN table2 ON table1.a = table1.a WHERE table2.b=1 ちなみにSQL-92と互換性のある構文は以下のようにサブクエリを使用します。 DELETE FROM table1 WHERE a IN (SELECT a FROM table2 WHERE b = 1)
![SQL-Server2000 結合を含んだ削除 - 使えないプログラマー](https://cdn-ak-scissors.b.st-hatena.com/image/square/53fa14bf4efb59bb6efd5ee5236717eaf5d86c6b/height=288;version=1;width=512/http%3A%2F%2Ftukaenai-pg.cocolog-nifty.com%2F.shared-pleasy%2Fnifty_managed%2Fimages%2Fweb%2Fogp%2Fdefault.png)
はじめに SQLでは、同じ行内の列同士を比較することは簡単にできます。普通にWHERE句に「col_1 = col_2」のように書けばよいだけですから。一方、異なる行の間で列同士を比較することは、それほど簡単ではありません。ですがそれは、SQLで行間比較ができないということではありません。手続き型言語とはかなり異なる発想に基づいていますが、SQLでもそうした処理を記述することが可能です。 SQLで行間比較をする際に威力を発揮するのが相関サブクエリ、特に自己結合と組み合わせた「自己相関サブクエリ」です。本稿では、この技術を使った行間比較の応用方法を、具体例を通して解説します。稼働環境OracleSQL ServerDB2PostgreSQLMySQL(バージョン4.1以上) 対象読者 相関サブクエリの基本的な使い方を知っている方。CASE式、自己結合、スカラ・サブクエリについての知識があると
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く