[解決済み] オラクル「(+)」。演算子
質問
古いSQLステートメントをドキュメント化するため、またおそらくそれらを強化するためにチェックしています。
DBMSはOracleです。
このような文章は理解できませんでした。
select ...
from a,b
where a.id=b.id(+)
について混乱しています。
(+)
演算子について、どこのフォーラムに行っても教えてもらえませんでした...。(引用符で囲まれた+を検索してもうまくいきませんでした)。
とにかく、SQLDeveloperの'Explain Plan'を使ってみたら、次のように出力されました。
HASH JOIN, RIGHT OUTER
などです。
を削除した場合、何か違いがあるのでしょうか?
(+)
演算子をクエリの末尾に追加してください。データベースが何らかの条件(例えばインデックスを持つなど)を満たしてから
(+)
は使えるのでしょうか?簡単な理解や、この件について読める良いリンクなどを教えていただけると大変助かります。
ありがとうございます。
解決方法は?
ANSI-89形式(FROM句でカンマを使用してテーブル参照を分離)ではOUTER JOINが標準化されていなかったため、これはOracle固有のOUTER JOINの表記法です。
このクエリは、ANSI-92構文で次のように書き直されます。
SELECT ...
FROM a
LEFT JOIN b ON b.id = a.id
このリンクは、JOINの違いを説明するのにかなり適しています。 .
また、注意すべきは、たとえ
(+)
が動作します。
オラクルの推奨する
ない
使用
:
オラクルでは
FROM
節OUTER JOIN
の構文を使用し、Oracle 結合演算子ではありません。Oracle 結合演算子を使用する外部結合クエリ(+)
には適用されませんが、以下の規則と制約に従います。FROM
節OUTER JOIN
の構文があります。
関連
-
SQLラーニングノート--オペランドには1つのカラムが必要です。
-
SQL-初心者のためのベスト入門SQLクエリ I
-
[解決済み] SQL ServerでJOINを使用してUPDATE文を実行するにはどうすればよいですか?
-
[解決済み] Oracleの全テーブルのリストを取得しますか?
-
[解決済み] SQL Serverでストアドプロシージャ内のテキストを検索する
-
[解決済み] 最初の行への結合方法
-
[解決済み] 別のテーブルに一致する項目がない行を選択するにはどうすればよいですか?
-
[解決済み] オラクル:テーブルが存在する場合
-
[解決済み】Oracleクエリが順序付け後に返す行数を制限するにはどうすればいいですか?
-
[解決済み】OracleでAUTO_INCREMENTでidを作成する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
SQLラーニングノート--オペランドには1つのカラムが必要です。
-
解決策:ユーザー root で localhost:3306 にある MySQL に接続できませんでした。
-
解決策:java.sql.SQLException: ユーザー ''@'localhost'' (パスワード: YES を使用) のアクセスが拒否されました。
-
MySQL - ストアドプロシージャ (データ型、関数)
-
executeQuery()ソリューションでデータ操作文を発行できない。
-
[解決済み] SQL Server - 挿入された行のIDを取得するための最良の方法は?
-
[解決済み] SQLの複数列の順序付け
-
[解決済み] ある列の最大値を持つ行を取得する
-
[解決済み] フラットテーブルをツリーにパースする最も効率的/エレガントな方法は何ですか?
-
[解決済み] SQL Serverで結果をページ分割する最も良い方法は何ですか?