Merge pull request #27818 from scotttrinh/union-with-query-builder

[knex] Allow QueryBuilder in union parameters
This commit is contained in:
Ron Buckton
2018-08-07 13:51:59 -07:00
committed by GitHub
2 changed files with 19 additions and 3 deletions

View File

@@ -312,9 +312,9 @@ declare namespace Knex {
}
interface Union {
(callback: QueryCallback, wrap?: boolean): QueryBuilder;
(callbacks: QueryCallback[], wrap?: boolean): QueryBuilder;
(...callbacks: QueryCallback[]): QueryBuilder;
(callback: QueryCallback | QueryBuilder | Raw, wrap?: boolean): QueryBuilder;
(callbacks: (QueryCallback | QueryBuilder | Raw)[], wrap?: boolean): QueryBuilder;
(...callbacks: (QueryCallback | QueryBuilder | Raw)[]): QueryBuilder;
// (...callbacks: QueryCallback[], wrap?: boolean): QueryInterface;
}

View File

@@ -1145,3 +1145,19 @@ knex('characters')
.whereIn(['name', 'class'], function() {
this.select('name', 'class').from('characters');
});
knex('characters')
.select()
.where({ name: 'Bar', class: 'Fighter' })
.union(knex('characters').select().where({ name: 'Foo', class: 'Druid' }));
knex('characters')
.select()
.where({ name: 'Bar', class: 'Fighter' })
.union([knex('characters').select().where({ name: 'Foo', class: 'Druid' })]);
knex('characters')
.select()
.where({ name: 'Bar', class: 'Fighter' })
.union(
knex('characters').select().where({ name: 'Foo', class: 'Druid' }),
knex('characters').select().where({ name: 'Baz', class: 'Paladin' })
);