Προς το περιεχόμενο

Sequelze.js


Προτεινόμενες αναρτήσεις

Δημοσ.

Θέσε επακριβώς τις ερωτήσεις που σε αφορούν και ίσως κάποιος βρεθεί να σου απαντήσει. Τώρα έτσι στο φλου δύσκολα να ασχοληθεί κάποιος. 

Δημοσ.

Λοιπόν έχω τα παρακάτω Models

 const ModelAlpha = sequelize.define('tbl_A', {
    id: {
        type: Sequelize.INTEGER.UNSIGNED,
        field: 'a_id',
        autoIncrement: true,
        primaryKey: true,
    }
});


const ModelBeta = sequelize.define('tbl_B', {
    id: {
        type: Sequelize.INTEGER.UNSIGNED,
        field: 'b_id',
        autoIncrement: true,
        primaryKey: true,
    },
    attributeB: {
        type: Sequelize.TINYINT.UNSIGNED,
        field: 'b_attribute'
    }
});


const ModelCharlie = sequelize.define('tbl_C', {
    id: {
        type: Sequelize.INTEGER.UNSIGNED,
        field: 'c_id',
        autoIncrement: true,
        primaryKey: true,
    },
    attributeC: {
        type: Sequelize.TINYINT.UNSIGNED,
        field: 'c_attribute'
    }
});

και θέλω να τρέξω το παρακάτω query

SELECT C.* FROM tbl_C
JOIN tbl_A ON tbl_A.a_id = C.fkey_a_id
JOIN tbl_B ON tbl_B.b_id = tbl_A.fkey_b_id
WHERE C.c_attribute = B.b_attribute
AND tbl_A.a_id = 123

Εχω φτιαξει και το παρακάτω ORM query αλλα δεν ξερω τι να βάλω στο where: {attributeC:.... } 

Θελω να ειναι ισο με το b_attribute του ModelB 

 ModelAlpha.belongsTo(ModelBeta, {foreignKey: 'fkey_b_id', as: 'beta'});
   ModelAlpha.hasMany(ModelCharlie,{foreignKey: 'fkey_a_id', as : 'charlies'});

    ModelAlpha.find({
    where: {id: '123'},
    include: [
        {
            model: ModelBeta,
            as: 'beta',
            attributes: [],
        },
        {
            model: ModelCharlie,
            as: 'charlies',
            attributes:[],
            where: {
                attributeC: ......
            }
        }
    ],
    limit: 1
}).then(result => {
     //...

});

Υπάρχει τρόπος ή μονο με raw SQL ;

Δημοσ.
User.hasMany(Post, {foreignKey: 'user_id'})
Post.belongsTo(User, {foreignKey: 'user_id'})

Post.find({ where: { ...}, include: [User]})

Το where σου κάντο join και μπορείς να χρησιμοποιήσεις κώδικα παραπλήσιο του παραπάνω.

 

Για παραπάνω διάβασμα

 

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...