我使用了sequelize ORM;一切都很好,很乾淨,但是當我在join
查詢中使用它時,我遇到了問題。 我有兩種模式:用戶和帖子。如何使用nodejs中的sequelize製作連接查詢
var User = db.seq.define('User',{
username: { type: db.Sequelize.STRING},
email: { type: db.Sequelize.STRING},
password: { type: db.Sequelize.STRING},
sex : { type: db.Sequelize.INTEGER},
day_birth: { type: db.Sequelize.INTEGER},
month_birth: { type: db.Sequelize.INTEGER},
year_birth: { type: db.Sequelize.INTEGER}
});
User.sync().success(function(){
console.log("table created")
}).error(function(error){
console.log(err);
})
var Post = db.seq.define("Post",{
body: { type: db.Sequelize.TEXT },
user_id: { type: db.Sequelize.INTEGER},
likes: { type: db.Sequelize.INTEGER, defaultValue: 0 },
});
Post.sync().success(function(){
console.log("table created")
}).error(function(error){
console.log(err);
})
我想要一個查詢,用與創建它的用戶信息進行回覆。在原始查詢中,我得到:
db.seq.query('SELECT * FROM posts, users WHERE posts.user_id = users.id ').success(function(rows){
res.json(rows);
});
我的問題是如何更改代碼以使用ORM樣式而不是SQL查詢?
感謝的人,是偉大工程。 –
如果我只想加入1984年出生的用戶,該怎麼辦?在SQL我會做:'選擇* FROM職位JOIN用戶ON users.id = posts.user_id WHERE users.year_birth = 1984' – Iwazaru
@Iwazaru答案將太長,以適應一個評論,請打開一個新問題 –