Ref

Can be used to create references in a query, such as column- or tablenames. This is a good and shorter alternative to using knex.raw('??', 'tableName.columName') which essentially does the same thing.

Usage

knex.ref can be used essentially anywhere in a build-chain. Here is an example:

knex(knex.ref('Users').withSchema('TenantId'))
  .where(knex.ref('Id'), 1)
  .orWhere(knex.ref('Name'), 'Admin')
  .select(['Id', knex.ref('Name').as('Username')]);
select `Id`, `Name` as `Username` from `TenantId`.`Users` where `Id` = 1 or `Name` = 'Admin'
select "Id", "Name" as "Username" from "TenantId"."Users" where "Id" = 1 or "Name" = 'Admin'
select [Id], [Name] as [Username] from [TenantId].[Users] where [Id] = 1 or [Name] = 'Admin'
select `Id`, `Name` as `Username` from `TenantId`.`Users` where `Id` = 1 or `Name` = 'Admin'
select `Id`, `Name` as `Username` from `TenantId`.`Users` where `Id` = 1 or `Name` = 'Admin'
select "Id", "Name" as "Username" from "TenantId"."Users" where "Id" = 1 or "Name" = 'Admin'
select "Id", "Name" as "Username" from "TenantId"."Users" where "Id" = 1 or "Name" = 'Admin'
select "Id", "Name" as "Username" from "TenantId"."Users" where "Id" = 1 or "Name" = 'Admin'
select "Id", "Name" as "Username" from "TenantId"."Users" where "Id" = 1 or "Name" = 'Admin'
select `Id`, `Name` as `Username` from `TenantId`.`Users` where `Id` = 1 or `Name` = 'Admin'

withSchema

The Ref function supports schema using .withSchema(string):

knex(knex.ref('users').withSchema('TenantId')).select();

alias

Alias is supported using .alias(string)

knex('users').select(knex.ref('Id').as('UserId'));
select `Id` as `UserId` from `users`
select "Id" as "UserId" from "users"
select [Id] as [UserId] from [users]
select `Id` as `UserId` from `users`
select `Id` as `UserId` from `users`
select "Id" as "UserId" from "users"
select "Id" as "UserId" from "users"
select "Id" as "UserId" from "users"
select "Id" as "UserId" from "users"
select `Id` as `UserId` from `users`