简体   繁体   English

将带有子查询的 SQL 查询转换为 Sequelize 查询

[英]Convert SQL query with subquery to Sequelize query

I'm new to sequelize and I want to convert the following SQL query :我是续集的新手,我想转换以下SQL SQL query

select distinct user_id
from accounts_users
where user_id not in (
    select user_id
    from accounts_users
    where account_id = 2)

To a Sequelize query but I could not find a way to make the subquery right.对于 Sequelize 查询,但我找不到使子查询正确的方法。

My try that does not work:我的尝试不起作用:

const existingUserIdsWithAccountUser = await AccountUserModel.findAll({
      raw: true,
      where: {
        user_id: {
          [Sequelize.Op.and]: {
            [Sequelize.Op.notIn]: Sequelize.literal(`SELECT user_id FROM 'Accounts_Users' WHERE account_id = ${account_id}`),
            [Sequelize.Op.in]: existingUsersIds
          }
        }
      },
      attributes: [Sequelize.fn('DISTINCT', Sequelize.col('user_id')), 'user_id']
    }).map(user => user.user_id);

The query is equivalent to:该查询相当于:

select distinct user_id
from accounts_users
where account_id <> 2

Let me know if I am missing anything.如果我遗漏了什么,请告诉我。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM