sequelize.js - 选择来自非禁止用户的消息

标签 sequelize.js

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)
    })
})

最佳答案

@mhansen (库维护者)告诉我们,方法是编写原始 SQL 查询。

enter image description here

关于sequelize.js - 选择来自非禁止用户的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40411139/

相关文章:

mysql - 使用sequelize遍历多个表

javascript - 如何在 sequelize findAll() 中获取简单数组?

node.js - Sequelize 多个连接?

javascript - node.js - 在 js 查询字符串中使用 SQL 变量

javascript - Sequelize.js:如何在两个模型之间的两个 1:N 关系中设置外键?

sequelize.js - 无法使用belongsToMany正确使用多对多

javascript - 如何使用sequelize 将空数组转换为空JSON 对象?

postgresql - 在 Sequelize 外键中什么是可延迟的?

mysql - Sequelize 等效范围

mysql - 对父属性找到的按天对象排序查询组