有两种方法来声明标识符的别名(表或列)。一个人可以直接给标识符加上aliasName作为后缀(例如,identifierName作为aliasName),或者一个人可以传递一个对象{aliasName:’identifierName’}。
因此,以下代码:
knex.select('w.*', 'ua.name', 'uw.name')
.from({ w: 'Words' })
.innerJoin({ ua: 'Users' }, 'w.author_id', '=', 'ua.id')
.leftJoin({ uw: 'Users' }, 'w.winner_id', '=', 'uw.id')
.toString()
将编译为:
select "w".*, "ua"."name", "uw"."name"
from "Words" as "w"
inner join "Users" as "ua" on "w"."author_id" = "ua"."id"
left join "Users" as "uw" on "w"."winner_id" = "uw"."id"