我如何在knex的where子句中使用值数组?

时间:2019-07-06 11:09:30

标签: node.js express

我该如何使用值数组在where子句中进行比较,如下面的代码所示,“ frompersons”是一个名称数组,是第一个调用的响应,因此我想从“ chatterusers”中获取其信息数据库。但是我如何在下一个where子句中使用此数组?

return knex('frndrqst').where({ toperson: toperson })
            .select('fromperson')
            .then(frompersons => {

                  db.select('*').from('chatterusers')
                    .where( 'name', '=', frompersons )
                    .then(data => {
                        res.json(data);
                    })
                    .catch(err => res.json("Unable to load frndrqsts !!!"))
                })
            .catch(err => res.json("Unable to load frndrqsts !!!"))

1 个答案:

答案 0 :(得分:1)

//get the list of name from 'formperson' table 

var subquery = knex.select('name').from('fromperson');

//get in all information from 'chatterusers table' that name is equal with name

return knex.select('*').from('chatterusers')
  .whereIn('name', subquery)

输出:

select * from chatterusers where name in (select name from fromperson)