BaSys.Docs

Соединения таблиц

Inner join

Выполняет внутреннее соединение таблиц.

Синтаксис

primaryTable.innerJoin(secondaryTable, predicate, columnSettings)

Параметры

Возвращаемое значение

DataTable

Left join

Выполняет левое внешнее соединение таблиц.

Синтаксис

primaryTable.leftJoin(secondaryTable, predicate, columnSettings)

Параметры

Возвращаемое значение

DataTable

Right join

Выполняет правое внешнее соединение таблиц.

Синтаксис

primaryTable.rightJoin(secondaryTable, predicate, columnSettings)

Параметры

Возвращаемое значение

DataTable

Full join

Выполняет полное внешнее соединение таблиц.

Синтаксис

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'}])