数据库
首页 > 数据库> > mysql-从多个表中提取Sequelize信息

mysql-从多个表中提取Sequelize信息

作者:互联网

我对新序列化还很陌生,但是我试图弄清楚如何从多个表(放置表和审阅表)中提取序列化信息并将它们呈现在同一页面上.审阅表具有用户ID和位置ID.我试过原始查询和下面的代码的不同变体无济于事.在这种情况下,我应该使用哪种语法?

User.hasMany(Review);
Review.belongsTo(User);

User.hasMany(Place);
Place.belongsTo(User);

Place.hasMany(Review);
Review.belongsTo(Place);



app.get('/place/:category/:id', function(req, res){
  var id = req.params.id;
  Place.findAll({
    where : {id : id},
    include: [{
      model: [Review]
    }]
  }).then(function(reviews){
    res.render('singular', {reviews});
  });

});

解决方法:

根据您的API路线定义,我假设您正在尝试根据地点ID显示该地点的评论.

因此,要实现此目的,您可以将表关联建模为

Places.hasMany(Reviews);
Users.hasMany(Reviews);

Review.belongsTo(Places);
Review.belongsTo(Users);

现在,基于此关联,您可以执行以下查询:

Places.findById(req.params.id, {
    include: [{
        model: Reviews,
        required: false,
        include: [{
            model: Users,
            required: false
        }]
    }]
}).then(function(place) {
    // The rest of your logic here...
});

标签:sequelize-js,node-js,express,mysql
来源: https://codeday.me/bug/20191119/2032333.html