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

OracleのJoinクエリで更新

    SELECTでない限り サブクエリは単一の行、つまりUPDATEを返します ステートメントはエラーで失敗するはずです

    ORA-01427: single-row subquery returns more than one row
    

    一般に、相関更新がある場合は、外部テーブルT1の行を関連付ける条件が必要です。 サブクエリが単一の行を返すことを保証するために、内部サブクエリの行に。それは一般的に次のようになります

    UPDATE table1 t1 SET (t1.col,t1.Output) = (
      SELECT t2.col, t3.Output + t2.col
      FROM tabl2 t3 
      LEFT JOIN table1 t2 ON t3.Join_Key = t2.Join_Key
      WHERE t2.col is not NULL
        AND t1.some_key = t2.some_key);
    

    最後に、このUPDATE ステートメントはT1のすべての行を更新しています 。それはあなたが意図していることですか?または、たとえば、サブクエリで一致する行を見つけた行のみを更新しますか?



    1. .NETのイベントとスレッド

    2. AnySQLMaestroをSalesforce.comに接続する

    3. マルチクラウド環境全体でのPostgreSQLセキュリティの標準化

    4. 新しい列を追加した後にactiveandroidでテーブルを更新する方法