AlfieriChou / alfierichou.github.io

AlfieriChou的博客
https://alfierichou.com
4 stars 0 forks source link

knex multiple column filters to a join #39

Open AlfieriChou opened 2 years ago

AlfieriChou commented 2 years ago

example

knex
  .select('*')
  .from('users')
  .leftOuterJoin('accounts', function () {
    this
      .on('users.id', 'account.user_id')
      .on('users.state', 'accounts.state')
  })
SELECT *
FROM 'users'
LEFT JOIN 'accounts'
   ON 'users'.'id' = 'accounts'.'user_id'
   AND 'users'.'state' = 'accounts'.'state'
AlfieriChou commented 1 year ago
knex
  .select('*')
  .from('users')
  .leftOuterJoin('accounts', b1 => b1
      .on('users.id', 'account.user_id')
      .andOn(b2 => b2
         .on('users.state', 'NULL')
         .orOn('users.state', 'accounts.state')
      )
  });