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

例を使用してオラクルに自己参加

    このOracleSQLチュートリアルは、Oracleでの自己結合に焦点を当てており、構文、説明、例を提供します

    Oracleでの自己結合は、Oracleテーブルのそれ自体への結合です。テーブルは複数回使用できます。各オカレンスにはエイリアス名が必要です。クエリの実行中にOracleデータベースがテーブルを結合し、結果を生成します。

    General  syntax
    select a.col1 ,b.col2  from mytable a,mytable b where <join condition> ;

    Oracleの例での自己結合

    (1)階層データの表示

    従業員テーブルがあり、すべての従業員の従業員名、マネージャー名を指定します。質問に表示するために誰にも報告も報告もしない大統領もいます

    目的の形式でデータを抽出するための外部結合を使用した自己結合を使用した以下のクエリ

    上記のクエリに注目する価値のあるポイントのいくつかを次に示します

    a。テーブルEMPの複数回出現に異なるエイリアスを使用しました

    b。社長情報も表示するために左アウタージョインを使用しました

    (2)同じ雇用日を持つ従業員情報を抽出する別の例

    (3)自己結合を使用して列の行を転置することができます また。 1年のさまざまな月の行に複数の行があるcustomer_billテーブルがあり、さまざまな月の請求額を列形式で表示したい

    Desc customer_bill
    --------------
    Customer_id Varchar2(10)
    bill_amount Number
    bill_month Varchar2(10)

    テーブルクエリ

    select Customer_id,bill_amount,bill_month
    from customer_bill where
    customer_id=1111;

    行を列に転置するクエリ

    select a.customer_id , b.bill_amount Jan-amount , 
    c.bill_amount Feb-amount ,
    c.bill_amount Mar-amount from customer_bill a ,customer_bill b,
    customer_bill c where a.customer_id=b.customer_id ,
    b.customer_id =c.customer_id 
    and a.bill_month='JAN' 
    and b.bill_month='FEB' and c.bill_month='MAR' 
    and a.customer_id=1111;
    

    同様に、Oracleでは自己結合を複数回使用できます。この投稿が気に入ったら教えてください

    関連記事
    oracle sql join:例を使用したOracle結合(Sql結合)、さまざまなタイプの結合、内部結合、外部結合、左外部結合、右外部結合、例を使用した相互結合
    oracle結合構文の例:内部結合、クロス結合、外部結合、左外部結合、右外部結合に関するOracle結合構文の例については、この投稿を確認してください。
    OracleのJoinsメソッド:この投稿では、OracleのさまざまなPlan Joinsメソッド、ネストされたループについて説明します。ソートマージ結合、カルテシアン結合、ハッシュ結合を理解しやすくする
    Oracle 11gでのネストされたループ結合:Oracleでのネストされたループ結合、Oracle 11gでのネストされたループ結合の違い、ネストされた方法の詳細については、このページを確認してくださいループ結合はオラクルで機能します
    オラクルでのハッシュ結合:オラクルでのハッシュ結合の詳細については、この投稿を確認してください。オラクルでのネストされたループ結合との違い


    1. リアルタイムの運用分析と非クラスター化列ストアインデックス

    2. to_sqlpyodbcカウントフィールドが正しくないか構文エラー

    3. Oracle:複数のテーブルの更新=> ORA-01779:キーが保持されていないテーブルにマップする列を変更できません

    4. SQLのアクセントを無視して文字列を比較する(ORACLE)