AlierDBTable: join()

対象のテーブルを与えられたテーブルと結合します。

構文

alierDBTable.join({ table }) => AlierDBTable
alierDBTable.join({ table, joinType }) => AlierDBTable
alierDBTable.join({ table, on }) => AlierDBTable
alierDBTable.join({ table, using }) => AlierDBTable
alierDBTable.join({ table, columns }) => AlierDBTable
alierDBTable.join({ table, columns, on }) => AlierDBTable
alierDBTable.join({ table, columns, using }) => AlierDBTable
alierDBTable.join({ table, columns, columnAliases }) => AlierDBTable
alierDBTable.join({ table, columns, columnAliases, on }) => AlierDBTable
alierDBTable.join({ table, columns, columnAliases, using }) => AlierDBTable
alierDBTable.join({ table, joinType, on }) => AlierDBTable
alierDBTable.join({ table, joinType, using }) => AlierDBTable
alierDBTable.join({ table, joinType, columns }) => AlierDBTable
alierDBTable.join({ table, joinType, columns, on }) => AlierDBTable
alierDBTable.join({ table, joinType, columns, using }) => AlierDBTable
alierDBTable.join({ table, joinType, columns, columnAliases }) => AlierDBTable
alierDBTable.join({ table, joinType, columns, columnAliases, on }) => AlierDBTable
alierDBTable.join({ table, joinType, columns, columnAliases, using }) => AlierDBTable

引数

単一の、以下のプロパティを持つオブジェクトを引数にとります。

SQLiteのUSING
  • SQLite 3.39.0 以降と3.38.x 以前で USING まわりの挙動が変更されています。

    ```js
    
    // これは 3.38.x 以前では構文エラーになります(no such column: C.x)
    const BC = B.join({table:C, using:"x"});
    const ABC = A.join({table:BC, on:"A.x = C.x"})
    
    // これは 3.38.x 以前でも実行可能です。
    const BC = B.join({table:C, using:"x"});
    const ABC = BC.join({table:A, on:"A.x = C.x"})
    
    ```
  • 対策として JOIN の右項に USING が使われているなら左項と入れ替え、LEFT_OUTER_JOINRIGHT_OUTER_JOIN, RIGHT_OUTER_JOINLEFT_OUTER_JOIN に変更してください。

  • NATURAL に関しても USING を使う場合と同様に変更してください。

返値: AlierDBTable

結合結果の AlierDBTable が返ります。

例外

解説

対象のテーブルを与えられたテーブルと結合します。

結合時に同名のカラムを別々に扱いたい場合は、結合したいテーブルのcolumnAliasesでカラムに別名を付けてください。

別名を付けずに結合すると、同名のカラムが複数あった場合の結果は、DBごとに異なります。