我有三种型号user
,tab
,subscription
。用户可以订阅很多标签,标签可以有很多订阅者。 user --* subscription *-- tab
如何查询自定义连接表
从Navicat的图
sequelize.define('subscription', {})
Tab.belongsToMany(User, { through: Subscription })
User.belongsToMany(Tab, { through: Subscription })
如何获取特定标签或所有用户的哪些特定的用户订阅的所有标签? 我可以在两个查询中做到这一点,但它必须在一个可能。
我试过where
,include
,through
的每种可能的组合,我不想在这里分享。每次我尝试从任何一方获得订阅时,我都会收到subscription (subscriptions) is not associated to user
。
我想让这样的工作。
await Tab.findAll({
where: { name: ctx.params.tabname },
include: [{
model: Subscription,
through: {
where: { userUsername: ctx.params.username }
}
}]
})
请提供输入和预期输出,并提供表格之间的关系。 – sagi
因此,给定一个标签,你想要列出订阅了原始标签的用户也订阅的所有其他标签页? – rotten
@rotten标签是按名称标识的,所以如果我按名称查询标签,我想知道它的所有订阅者。或者从另一方面来说,用户是通过用户名来标识的,所以如果我通过用户名查询用户我想知道他订阅的所有标签 – Hnus