Как написать подзапрос с несколькими, где в sequelize, используя NodeJS

Мне нужно выполнить этот запрос с помощью sequelize.

select * from mysqlDB.songTable where
X in (SELECT X FROM movieDB4.songTable where Y like('%pencil%') and Z='title') and
Y='tam' and Z='language';

Я пытался так. но он выдает какое-то неверное значение [объект] ошибка. Пожалуйста, помогите решить этот вопрос.

const tempSQL = sequelize.dialect.QueryGenerator.selectQuery('songTable',{
      attributes: ['X'],
      where: {
           Y: {$like: '%'+text[i]},
           Z: "content_title"
      }})
      .slice(0,-1); // to remove the ';' from the end of the SQL

  User.findAll({
      where: {
          X: {
               $in: sequelize.literal('(' + tempSQL + ')'),
               $and: {Y: lang.substring(0,3),
                      Z: 'language'}
          }
      } 
  })

1 ответ

Вы можете использовать sequelize.query() для выполнения необработанных запросов.

пример

return this.sequelize.query(`SELECT category_id, category_name from table_categories where category_id in (SELECT DISTINCT category_id from table_authorized_service_center_details where center_id in (SELECT center_id from table_authorized_service_center where brand_id ${condition}));`).then((results) => {
                if (results.length === 0) {
                    reply({status: true, categories: [], forceUpdate: request.pre.forceUpdate});
                } else {
                    reply({status: true, categories: results[0], forceUpdate: request.pre.forceUpdate});
                }
            }).catch((err) => {
                console.log(err);
                reply({status: false, message: "ISE"});
            });
Другие вопросы по тегам