我该如何使用值数组在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 !!!"))
答案 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)