CREATE TABLE msg (usr INTEGER, txt TEXT);
CREATE TABLE ban (usr INTEGER);
SELECT * FROM msg WHERE (msg.usr NOT IN (SELECT usr FROM ban));
如果在
msg
中找不到 msg.usr
,那么纯 SQL 中的这一单行将从 ban
中选择所有内容。我打开了 Sequelize query docs,但找不到 Sequelize 这样做的方法是什么?在这里,我已经能够收到来自被禁止用户的消息,但无法反转结果:
var Msg = sequelize.define('Msg', {
usr: { type: Sequelize.INTEGER, primaryKey: true },
txt: Sequelize.STRING
}, {
tableName: 'msg'
});
var Ban = sequelize.define('Ban', {
}, {
tableName: 'ban'
});
Msg.hasMany(Ban);
Ban.belongsTo(Msg);
Msg.findAll({
include: [{
model: Ban,
where: { MsgUsr: {$ne: null} }
}]
}).then((a)=>{
a.forEach((row)=>{
let ban = '-'
if(row.Bans[0]) ban = row.Bans[0].id
console.log(row.usr, row.txt, ban)
})
})
最佳答案
关于sequelize.js - 选择来自非禁止用户的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40411139/