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_JOINDBJoinType.INNER_JOINDBJoinType.LEFT_OUTER_JOINDBJoinType.RIGHT_OUTER_JOINDBJoinType.FULL_OUTER_JOINDBJoinType.NATURAL_INNER_JOINDBJoinType.NATURAL_LEFT_OUTER_JOINDBJoinType.NATURAL_RIGHT_OUTER_JOINDBJoinType.NATURAL_FULL_OUTER_JOIN
このプロパティの指定は任意です。指定がない場合、テーブルは内部結合(
INNER JOIN)されます(DBJoinType.INNER_JOIN)。 -
on:string|undefined(省略可)JOIN演算のON句に与える結合条件を表す条件式です。 条件式の記法についてはSQL 式のスクリプト上での表現を参照してください。このプロパティは
joinTypeの値を以下のいずれかに指定した場合のみ指定できます:DBJoinType.INNER_JOINDBJoinType.LEFT_OUTER_JOINDBJoinType.RIGHT_OUTER_JOINDBJoinType.FULL_OUTER_JOIN
以下の値を
joinTypeに指定した場合、このプロパティは指定できません:DBJoinType.CROSS_JOINDBJoinType.NATURAL_INNER_JOINDBJoinType.NATURAL_LEFT_OUTER_JOINDBJoinType.NATURAL_RIGHT_OUTER_JOINDBJoinType.NATURAL_FULL_OUTER_JOIN
また、
onプロパティとusingプロパティの両方を指定することはできません。このプロパティの指定は条件付きで任意です。指定がない場合、
ON句は使われません。 -
using:Array<string>|undefined(省略可)JOIN演算のUSING句に与えるカラム名のリストです。このプロパティは
joinTypeの値を以下のいずれかに指定した場合のみ指定できます:DBJoinType.INNER_JOINDBJoinType.LEFT_OUTER_JOINDBJoinType.RIGHT_OUTER_JOINDBJoinType.FULL_OUTER_JOIN
以下の値を
joinTypeに指定した場合、このプロパティは指定できません:DBJoinType.CROSS_JOINDBJoinType.NATURAL_INNER_JOINDBJoinType.NATURAL_LEFT_OUTER_JOINDBJoinType.NATURAL_RIGHT_OUTER_JOINDBJoinType.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() の結果のレコードでは、カラム名として文字列 別名 + "_" + カラム名 が使われます。
別名がない場合、テーブル名 + "_" + カラム名 が代わりに使われます。