Node.js 在关系为空的情况下进行续集
我对sequelize有意见。以下是我想做的:Node.js 在关系为空的情况下进行续集,node.js,sequelize.js,Node.js,Sequelize.js,我对sequelize有意见。以下是我想做的: return pointsTransaction.findAndCountAll({ where:{ user_id: userId }, limit: opts.limit, offset: opts.offset, include:[{ model:sequelize.models.pointsPendingtransaction }] }); 生成的查询如下所示
return pointsTransaction.findAndCountAll({
where:{
user_id: userId
},
limit: opts.limit,
offset: opts.offset,
include:[{
model:sequelize.models.pointsPendingtransaction
}]
});
生成的查询如下所示:
SELECT "pointsTransaction".*,
"pointsPendingtransactions"."transaction_ptr_id" AS "pointsPendingtransactions.transactionPtrId",
"pointsPendingtransactions"."is_active" AS "pointsPendingtransactions.isActive",
"pointsPendingtransactions"."transaction_id" AS "pointsPendingtransactions.transaction_id"
FROM (
SELECT "pointsTransaction"."id",
"pointsTransaction"."date_time" AS "dateTime",
"pointsTransaction"."details",
"pointsTransaction"."points",
"pointsTransaction"."user_id"
FROM "points_transaction" AS "pointsTransaction"
WHERE "pointsTransaction"."user_id" = 10002 LIMIT 1000
) AS "pointsTransaction"
LEFT OUTER JOIN "points_pendingtransaction" AS "pointsPendingtransactions"
ON "pointsTransaction"."id" = "pointsPendingtransactions"."transaction_id"
因此,在SQL中,我只需要在查询的末尾添加这一行就可以了:其中“pointsPendingtransactions”。“transaction_id”为null
所以我的问题是,我如何用sequelize做到这一点?我尝试了许多不同的方法,但没有人奏效…尝试下一步
其中:{
交易编号:{
$eq:null
}
}
生成的为空
返回点stransaction.findAndCountAll({
其中:{
用户id:userId
},
限制:opts.limit,
偏移量:选择偏移量,
包括:[{
模型:sequelize.models.pointsPendingtransaction,
其中:{
交易编号:{
$eq:null
}
}
}]
});
如果使用Sequelize.Op中Sequelize的符号运算符,则
返回点stransaction.findAndCountAll({
其中:{
用户id:userId
},
限制:opts.limit,
偏移量:选择偏移量,
包括:[{
模型:sequelize.models.pointsPendingtransaction,
其中:{
交易编号:{
//“$eq”更改为“[Op.eq]”
[Op.eq]:空
}
}
}]
});
类似于:include:[{model:sequelize.models.pointsPendingtransaction,其中:{transaction\u id:null}}]应该可以工作,尽管我自己没有尝试过,但我尝试过,也尝试过一些基于计数的方法,但没有任何效果。我怀疑是“findAndCountAll”引起的错误当你尝试Molda的建议时会出现什么错误?我知道已经很晚了,但是你可以在这里检查我的答案。所有这一切都是在连接上附加了一个条件,它不符合他想要的。我自己试过了。在左外部联接之后需要where子句,但在外部where子句中放入一个条件会将其添加到此节中,其中“pointsTransaction”。“user_id”=10002 LIMIT 1000