Как я могу использовать массив значений внутри, где предложение в Knex? - PullRequest
0 голосов
/ 06 июля 2019

Как я могу использовать массив значений для сравнения внутри предложения 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 Ответ

1 голос
/ 06 июля 2019
//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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...