AlierTable: join()
対象のテーブルを与えられたテーブルと結合します。
構文
alierTable.join({ table }) => VirtualAlierTable
alierTable.join({ table, joinType }) => VirtualAlierTable
alierTable.join({ table, on }) => VirtualAlierTable
alierTable.join({ table, using }) => VirtualAlierTable
alierTable.join({ table, columns }) => VirtualAlierTable
alierTable.join({ table, columns, on }) => VirtualAlierTable
alierTable.join({ table, columns, using }) => VirtualAlierTable
alierTable.join({ table, joinType, on }) => VirtualAlierTable
alierTable.join({ table, joinType, using }) => VirtualAlierTable
alierTable.join({ table, joinType, columns }) => VirtualAlierTable
alierTable.join({ table, joinType, columns, on }) => VirtualAlierTable
alierTable.join({ table, joinType, columns, using }) => VirtualAlierTable
引数
単一の、以下のプロパティを持つオブジェクトを引数にとります。
-
table
:AlierTable
結合するテーブルです。
JOIN
演算の右項として使われます。 -
columns
:string
|Array<string>
|undefined
(省略可)結合テーブルから取得するカラム名のリストです。 引数
columns
のカラム名はテーブル名またはその別名から始める必要があります。カラム名を表す文字列の配列、またはカンマ区切り文字列を指定できます。
このプロパティの指定は任意です。指定がない場合、すべてのカラムが取得されます。
-
joinType
:DBJoinType
|undefined
(省略可)結合する方法を指定します。 指定できる値は
DBJoinType
のプロパティとして定義された下記の定数のみです。DBJoinType.CROSS_JOIN
DBJoinType.INNER_JOIN
DBJoinType.LEFT_OUTER_JOIN
DBJoinType.RIGHT_OUTER_JOIN
DBJoinType.FULL_OUTER_JOIN
DBJoinType.NATURAL_INNER_JOIN
DBJoinType.NATURAL_LEFT_OUTER_JOIN
DBJoinType.NATURAL_RIGHT_OUTER_JOIN
DBJoinType.NATURAL_FULL_OUTER_JOIN
このプロパティの指定は任意です。指定がない場合、テーブルは内部結合(
INNER JOIN
)されます(DBJoinType.INNER_JOIN
)。 -
on
:string
|undefined
(省略可)JOIN
演算のON
句に与える結合条件を表す条件式です。 条件式の記法についてはSQL 式のスクリプト上での表現を参照してください。このプロパティは
joinType
の値を以下のいずれかに指定した場合のみ指定できます:DBJoinType.INNER_JOIN
DBJoinType.LEFT_OUTER_JOIN
DBJoinType.RIGHT_OUTER_JOIN
DBJoinType.FULL_OUTER_JOIN
以下の値を
joinType
に指定した場合、このプロパティは指定できません:DBJoinType.CROSS_JOIN
DBJoinType.NATURAL_INNER_JOIN
DBJoinType.NATURAL_LEFT_OUTER_JOIN
DBJoinType.NATURAL_RIGHT_OUTER_JOIN
DBJoinType.NATURAL_FULL_OUTER_JOIN
また、
on
プロパティとusing
プロパティの両方を指定することはできません。このプロパティの指定は条件付きで任意です。指定がない場合、
ON
句は使われません。 -
using
:Array<string>
|undefined
(省略可)JOIN
演算のUSING
句に与えるカラム名のリストです。このプロパティは
joinType
の値を以下のいずれかに指定した場合のみ指定できます:DBJoinType.INNER_JOIN
DBJoinType.LEFT_OUTER_JOIN
DBJoinType.RIGHT_OUTER_JOIN
DBJoinType.FULL_OUTER_JOIN
以下の値を
joinType
に指定した場合、このプロパティは指定できません:DBJoinType.CROSS_JOIN
DBJoinType.NATURAL_INNER_JOIN
DBJoinType.NATURAL_LEFT_OUTER_JOIN
DBJoinType.NATURAL_RIGHT_OUTER_JOIN
DBJoinType.NATURAL_FULL_OUTER_JOIN
また、
on
プロパティとusing
プロパティの両方を指定することはできません。このプロパティの指定は条件付きで任意です。指定がない場合、
USING
句は使われません。
返値: VirtualAlierTable
結合結果の VirtualAlierTable
が返ります。
例外
DBError
- 引数にプロパティ
table
が指定されなかった場合 - 引数のプロパティ
table
の値がAlierTable
のインスタンスでなかった場合 - 引数のプロパティ
table
に指定されたAlierTable
とjoin()
の対象のAlierTable
が互いに異なるデータベースのテーブルを指している場合 - 引数にプロパティ
on
とusing
の両方が指定されていた場合 - 引数のプロパティ
joinType
の値が以下のいずれかで、かつプロパティon
とusing
のいずれも指定されていない場合: - 引数のプロパティ
joinType
の値が以下のいずれかで、かつプロパティon
とusing
のいずれかが指定されていた場合: - 対象のテーブルと引数
table
として与えられたテーブルがともに結合テーブルであった場合
- 引数にプロパティ
TypeError
- 引数のプロパティ
on
にnull
またはundefined
でない値が設定されていて、それが文字列でない場合 - 引数のプロパティ
using
にnull
またはundefined
でない値が設定されていて、それが文字列の配列でない場合
- 引数のプロパティ
解説
対象のテーブルを与えられたテーブルと結合します。
結合する AlierTable
がプロパティ columns
としてカラムのリストを持つ場合、それは無視されます。
結合する AlierTable
がプロパティ alias
としてテーブルの別名を持つ場合、結合テーブルから得られる AlierTable.get()
の結果のレコードでは、カラム名として文字列 別名 + "_" + カラム名
が使われます。
別名がない場合、テーブル名 + "_" + カラム名
が代わりに使われます。