gpt4 book ai didi

mysql - Sequelize - 在 where 子句中查询其他表

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

我正在尝试做一些事情,但不知道 sequelize 是否可行。基本上我在graphQl上运行了这个代码片段,基本上它的作用是在kits表上找到kits,然后验证“users”表上是否存在相同的id。如果不是,则返回它们,如果是,则不返回。但是现在我们需要扩展它以进行分页,并且当前的代码段不是那么可扩展。这就是为什么我有想法只在 where 子句中包含 for 循环或以某种方式检查那里,但真的不知道允许这样做的 mySql 上的任何命令。
你有什么提示吗?

async findKitsWithResultNoReg2(_, {search}) {
try {
let promises = []
const a1 = await db.kits.findAll({
where: {
[Op.and]: [
{ result: { [Op.or]: [1, 2, 3] } },
{ cp: 0 },
{[Op.or]: [
{ kitID: { [Op.like]: '%' + search + '%' } }]}
]
}
})
for (let i = 0; i < a1.length; i++) {
const a2 = await db.users.findByPk(a1[i].dataValues.kitID)
if (a2 === null) {
const a3 = {
kitID: a1[i].dataValues.kitID,
result: a1[i].dataValues.result,
date: a1[i].dataValues.resultDate
}
promises.push(a3)
}
}

return Promise.all(promises)
} catch (error) {
console.log(error)
}
},

最佳答案

 async findKitsWithResultNoReg() {
try {
const a0 = await sequelize.query(`SELECT kitID, result, resultDate from kits where result in (1,2,3) and cp = 0 and archived = 0 and not Exists(select kitID from users where kits.kitID = users.kitID) order by resultDate desc`, { type: QueryTypes.SELECT })
const a1 = JSON.stringify(a0)
return a1
} catch (error) {
console.log(error)
}
},

关于mysql - Sequelize - 在 where 子句中查询其他表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66704089/

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