sql >> データベース >  >> RDS >> Oracle

Oracle db Join と FROM a、b、c の比較

    いいえ。Oracle は、他の適切なリレーショナル データベースと同様に、集合ベースの操作を実行したり、結合を手続き的にエミュレートしたりするよりも効率的です (たとえば、ネストされたカーソル ループを使用)。

    ただし、結合がないコードについて話しているわけではないと思います。私の推測では、慣れ親しんでいるものとは異なる結合構文を使用するコードについて話していると思います。両方

    SELECT a.*
      FROM a
           JOIN b ON (a.a_id = b.a_id)
           JOIN c ON (b.b_id = c.b_id)
      

    そして

    SELECT a.*
      FROM a,
           b,
           c
     WHERE a.a_id = b.a_id
       AND b.b_id = c.b_id
      

    a を結合するクエリです bc へ . 2 つのクエリはまったく同じです。Oracle パーサーは、実際には最初のクエリを 2 番目のクエリに内部的に書き換えます。唯一の違いは、最初のクエリが新しい SQL 99 構文を使用してその結合を指定することです。

    歴史的に見て、Oracle は SQL 99 構文を採用するのが比較的遅く、SQL 99 構文が利用可能になる前に書かれた膨大な量のコードがあり、かなりの数の Oracle 関係者は、少なくとも習慣から古いスタイルの構文を好みます。これらすべての理由から、古い結合構文のみを使用する Oracle ベースのプロジェクトを見つけることは比較的一般的です。本質的に問題はありません (個人的には新しい構文の方が好きですが)。




    1. SQLで最低2つの値を取得する

    2. 検証でキャッチする必要があるRails4.2.0での単純な整数割り当てのRangeError

    3. SQL Server(T-SQL)でデータ型のリストを返す方法

    4. MySQLから整数列と数値列をPHPの整数と数値として返すにはどうすればよいですか?