Ich benutze Sequelize ORM; Alles ist großartig und sauber, aber ich hatte ein Problem, wenn ich es mit join
Abfragen verwende. Ich habe zwei Modelle: Benutzer und Beiträge.Wie mache ich eine Query mit 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);
})
Ich möchte eine Abfrage, die mit einem Beitrag mit den Informationen des Benutzers, der es gemacht hat, antworten. In der rohen Abfrage, bekomme ich diese:
db.seq.query('SELECT * FROM posts, users WHERE posts.user_id = users.id ').success(function(rows){
res.json(rows);
});
Meine Frage ist, wie kann ich den Code ändern, um den ORM-Stil statt die SQL-Abfrage zu verwenden?
Dank Mann, die großen Werke. –
Was ist, wenn ich nur Benutzern beitreten möchte, die 1984 geboren sind? In SQL würde ich tun: 'SELECT * FROM Beiträge JOIN Benutzer ON users.id = posts.user_id WHERE users.year_birth = 1984' – Iwazaru
@Iwazaru Die Antwort wäre zu lang, um in einen Kommentar zu passen, bitte eine neue Frage zu öffnen –