gpt4 book ai didi

orm - 使用 NOT IN 子句和嵌套 SELECT 对查询进行 Sequelize

转载 作者:行者123 更新时间:2023-12-03 22:25:19 25 4
gpt4 key购买 nike

我有一个 SQL 查询,我想使用 sequelize 查询语法来表达它。
数据库方案

  • 用户: ( id , 用户名, ...)
  • 组:( id ,名称,...)
  • User_Groups: ( id , #groupId, #userId)

  • 查询说明
    检索尚未属于特定组的所有用户。
    原始 SQL 查询 (工作)
    SELECT User.id, User.email FROM Users as User 
    WHERE User.id NOT IN (
    SELECT User_Group.userId FROM User_Groups as User_Group
    WHERE User_Group.groupId = ${groupId}
    )
    我被阻止的地方
    我尝试使用 sequelize include 语句模拟连接,但我的大脑被困在转换嵌套的 SELECT 查询以及 NOT IN 运算符...

    最佳答案

    It's not possible to represent sub-queries 除了在 where 子句中使用 Sequelize.literal 之外,如下所示:

    const users = await database.User.findAll({
    where: Sequelize.where(Sequelize.literal(`(User.id NOT IN (
    SELECT User_Group.userId FROM User_Groups as User_Group
    WHERE User_Group.groupId = '${groupId}'
    ))`)
    }
    或者您可以将 Op.notIn Sequelize.literal 混合

    关于orm - 使用 NOT IN 子句和嵌套 SELECT 对查询进行 Sequelize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63752443/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com