Sto usando sequelize ORM; tutto è bello e pulito, ma ho avuto un problema quando lo uso con le query join
. Ho due modelli: utenti e post.Come rendere le query di join utilizzando sequelize in nodejs
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);
})
Desidero una query che risponda a un post con le informazioni dell'utente che l'ha effettuata. Nella query grezzo, ottengo questo:
db.seq.query('SELECT * FROM posts, users WHERE posts.user_id = users.id ').success(function(rows){
res.json(rows);
});
mia domanda è come posso cambiare il codice per utilizzare lo stile ORM anziché la query SQL?
Grazie uomo, che le grandi opere. –
Cosa succede se desidero unire solo utenti nati nel 1984? In SQL vorrei fare: 'SELECT * FROM posts UNISCITI utenti ON users.id = posts.user_id WHERE users.year_birth = 1984' – Iwazaru
@Iwazaru La risposta sarebbe troppo lunga per rientrare in un commento, si prega di aprire una nuova domanda –