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

1つの表に行がない可能性がある複数の表からの選択によるOracleInsert

    その場合、Outter結合は「期待どおりに」機能しません。これは、そのテーブルの基準が一致する場合にのみデータが必要であるとOracleに明示的に指示したためです。そのシナリオでは、外部結合は役に立たなくなります。

    回避策

    INSERT INTO account_type_standard 
      (account_type_Standard_id, tax_status_id, recipient_id) 
    VALUES( 
      (SELECT account_type_standard_seq.nextval FROM DUAL),
      (SELECT tax_status_id FROM tax_status WHERE tax_status_code = ?), 
      (SELECT recipient_id FROM recipient WHERE recipient_code = ?)
    )
    

    [編集]副選択から複数の行が予想される場合は、各where句にROWNUM =1を追加するか、MAXやMINなどの集計を使用できます。もちろん、これがすべての場合に最適なソリューションではない場合があります。

    [編集]コメントごと、

      (SELECT account_type_standard_seq.nextval FROM DUAL),
    

    ただ

      account_type_standard_seq.nextval,
    


    1. MariaDBのINSTR()とLOCATE()の違い

    2. AzureSQLデータベースに移行するメリットのトップ5

    3. JSON_VALID()–MySQLで有効なJSONをテストする

    4. OracleストアドプロシージャのASとISの違いは何ですか?