我有一个参与模型,其中有两个属性:cid
代表对话ID,uid
代表用户ID。
我有这个查询:
SELECT tA.cid
FROM participation tA, participation tB
WHERE tA.uid = "aaa" AND tB.uid = "aab" AND tA.cid = tB.cid;
它将返回两个用户都参与的对话的ID-仅该对话包括两个用户。
编辑:会话模型和用户模型通过参与模型具有多对多关联。
那么我该如何在Sequelize中进行查询?我可以使用include
吗?
participation.findAll({
include: [{
model: participation
}]
//Other options...
})
答案 0 :(得分:1)
如果您通过一个独立的模型(包含“有很多”或“属于许多”)定义了ID,则将使用include。然后,您可以尝试以下操作:
conversation.findAll({
where: {
[Op.and]: [{uid: "aaa"}, {uid: "aab"}]
include: [{
model: user,
through: {
attributes: ["uid", "cid"]
}
}]
})
Otherwise you could try something like this:
participation.findAll({
where: {
[Op.and]: [{uid: "aaa"}, {uid: "aab"}]
}
});