Sequelize.js 如何从列中获取不包括某些行的行,这些行的Id保存在另一个表中
“blocked”表有两列,“userId”和“messageId”,这是表“messages”的外键 我想在过滤被阻止的消息后获取这些消息。我试过这个:Sequelize.js 如何从列中获取不包括某些行的行,这些行的Id保存在另一个表中,sequelize.js,Sequelize.js,“blocked”表有两列,“userId”和“messageId”,这是表“messages”的外键 我想在过滤被阻止的消息后获取这些消息。我试过这个: messages.findAll({ where: { userId, }, include:[{ model: 'blocked', required: false attributes:[], where: {
messages.findAll({
where: {
userId,
},
include:[{
model: 'blocked',
required: false
attributes:[],
where: {
userId,
},
}],
});
没用。有人能提出一个解决方案吗?我将把这个问题分为两个问题
const blocked = await blocked.findAll({
where: {
userId,
attributes: ['messageId']
}
});
const blockedIds = blocked.map(b => b.messageId);
const messages = await messages.findAll({
where: {
id: { $notIn: blockedIds }
}
});