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

ORACLEJOINを使用してLEFTOUTERJOINまたはRIGHTOUTERJOINを見つける方法(+)

    例を挙げて、左右の外側の結合を正しく見つける方法を明確にしてください

    Oracle外部結合構文の違いを示してみます およびANSI/ISO構文

    左外側の結合-

    SELECT e.last_name,
      d.department_name
    FROM employees e,
      departments d
    WHERE e.department_id = d.department_id(+);
    
    SELECT e.last_name,
      d.department_name
    FROM employees e
    LEFT OUTER JOIN departments d
    ON (e.department_id = d.department_id);
    

    右外側の結合-

    SELECT e.last_name,
      d.department_name
    FROM employees e,
      departments d
    WHERE e.department_id(+) = d.department_id;
    
    SELECT e.last_name,
      d.department_name
    FROM employees e
    RIGHT OUTER JOIN departments d
    ON (e.department_id = d.department_id);
    

    完全な外部参加-

    11gR1でハッシュフルアウタージョインがネイティブにサポートされる前は、Oracleは次の方法でフルアウタージョインを内部的に変換していました-

    SELECT e.last_name,
      d.department_name
    FROM employees e,
      departments d
    WHERE e.department_id = d.department_id(+)
    UNION ALL
    SELECT NULL,
      d.department_name
    FROM departments d
    WHERE NOT EXISTS
      (SELECT 1 FROM employees e WHERE e.department_id = d.department_id
      );
    
    SELECT e.last_name,
      d.department_name
    FROM employees e
    FULL OUTER JOIN departments d
    ON (e.department_id = d.department_id);
    

    これを見てください。



    1. R12.1.3で同時リクエストを送信する際の配信オプション

    2. SQLServerカーソルで複数の値を取得する

    3. SQLサーバーにIPアドレスを格納するための最も適切なデータ型は何ですか?

    4. SQL Server AlwaysOn可用性グループ:インストールと構成、パート1