sequelize ORM을 사용하고 있습니다. 모든 것이 훌륭하고 깨끗하지만 join
쿼리 와 함께 사용할 때 문제가 발생했습니다 . 사용자와 게시물의 두 가지 모델이 있습니다.
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);
});
내 질문은 SQL 쿼리 대신 ORM 스타일을 사용하도록 코드를 어떻게 변경할 수 있습니까?
SELECT * FROM posts JOIN users ON users.id = posts.user_id WHERE users.year_birth = 1984