Выполняет внутреннее соединение таблиц.
primaryTable.innerJoin(secondaryTable, predicate, columnSettings)
DataTable
Выполняет левое внешнее соединение таблиц.
primaryTable.leftJoin(secondaryTable, predicate, columnSettings)
DataTable
Выполняет правое внешнее соединение таблиц.
primaryTable.rightJoin(secondaryTable, predicate, columnSettings)
DataTable
Выполняет полное внешнее соединение таблиц.
primaryTable.fullJoin(secondaryTable, predicate, columnSettings)
DataTable
Выполнение соединения без настройки колонок результирующей таблицы. Колонки таблицы-результата настраиваются автоматически.
var tableRates = createTable([{name:'person'}, {name: 'position'}, {name: 'rate', dataType: 'number'}])
.addRow(['person_1', 'developer', 100]).addRow(['person_2', 'administrator', 200]).addRow(['person_3', 'developer', 300]);
createTable([{name:'person'}, {name: 'department'}, {name:'hours', dateType:'number'}])
.addRow(['person_1', 'department 1', 40])
.addRow(['person_2', 'department 1', 30])
.addRow(['person_4', 'department 2', 20])
.addRow(['person_2', 'department 2', 25])
.fullJoin(tableRates, (primaryRow, joinedRow)=> primaryRow.person == joinedRow.person)
Выполнение соединения с явной настройкой колонок результирующей таблицы.
var tableRates = createTable([{name:'person'}, {name: 'position'}, {name: 'rate', dataType: 'number'}])
.addRow(['person_1', 'developer', 100]).addRow(['person_2', 'administrator', 200]).addRow(['person_3', 'developer', 300]);
createTable([{name:'person'}, {name: 'department'}, {name:'hours', dateType:'number'}])
.addRow(['person_1', 'department 1', 40])
.addRow(['person_2', 'department 1', 30])
.addRow(['person_4', 'department 2', 20])
.addRow(['person_2', 'department 2', 25])
.fullJoin(tableRates, (primaryRow, joinedRow)=> primaryRow.person == joinedRow.person,
[{table: 'primary', name:'person'}, {table: 'primary', name: 'hours'}, {table: 'secondary', name:'rate'}])