从关联表中获取信息

时间:2017-04-06 15:06:07

标签: sequelize.js

我有两张桌子:

---id---userid--- and ---id---productid---productname---

因此,它与以下代码相关联:

Product.belongsToMany(User, {through: 'resultingproducts', foreignKey: 'userid'});
User.belongsToMany(Product, {through: 'resultingproducts', foreignKey: 'productid'});

我试图从当前用户的“产品”中获取产品

        Product.sync()
        .then(() => {
            Product.findAll({
                include: [User],
                through: {
                    where: {
                        userid: userId
                }
        })

但此代码返回db中所有用户的产品。 有谁可以帮助我?

1 个答案:

答案 0 :(得分:1)

您应该真正查询用户模型而不是产品型号。 尝试将代码更改为以下内容,以查找与“此”用户“相关”的所有产品。

User.findAll({
  include: {
    model: Product, // Product is Product model
    through: {attributes: []} // this will remove rows from join table in the result
  },
  where: { userId: userId } // note, where clause is outside 'include' and 'through'
})