在 Node 应用程序中使用 Knex.js 构造内部连接

construct inner join with AND using Knex.js in Node application

是否可以在 Node 应用程序中使用 knex.js 编写类似于此 SQL 连接的连接?

INNER JOIN member_staff ON members.id = member_staff.member_id AND staff.id = member_staff.staff_id

我假设它看起来像这样(虽然这不起作用而且我找不到任何文档来解释如何做我想做的事):

.innerJoin('member_staff', 'members.id', 'member_staff.member_id').onAnd('staff.id', 'member_staff.staff_id')

您是说 onIn 吗?

.onIn('contacts.id', [7, 15, 23, 41])

OnAnd 不存在。

您也可以使用 onExists

knex.select('*').from('users').join('contacts', function() {
    this.on('users.id', '=', 'contacts.id').onExists(function() {
        this.select('*').from('accounts').whereRaw('users.account_id = accounts.id');
    })
})

这就是我要找的:

.innerJoin('member_staff', function() {
    this.on('member.id', 'member_staff.member_id')
    .andOn('staff.id', 'member_staff.staff_id');
  })