2016-02-27 7 views
5
db.WorkbookQuestion.count({ 
    where: { 
    QuestionId: dbQuestion.id, 
    AnswerSelectedId: db.sequelize.col('CorrectAnswerId') 
    } 
}); 

La query genera questo SQL: SELECT count(*) AS "count" FROM "WorkbookQuestions" AS "WorkbookQuestion" WHERE "WorkbookQuestion"."QuestionId" = 1103 AND "CorrectAnswerId";Come faccio a interrogare affinché due colonne siano uguali usando Sequenza?

Come faccio ad avere per essere più simile AnswerSelectedId = CorrectAnswerId?

risposta

7

È possibile farlo via sequelize.where():

db.WorkbookQuestion.count({ 
    where: sequelize.where(
    db.sequelize.col('CorrectAnswerId'), 
    db.sequelize.col('AnswerSelectedId') 
) 
}); 
+0

E se volessi avere più clausole? – Shamoon

+0

@Shamoon hai provato a inserire le condizioni in un array? Qualcosa come: 'dove: [sequelize.where (..), sequelize.where (..)]'. Non testato: sperimenterà effettivamente se questo non funzionerà. Grazie. – alecxe

+0

L'uso di 'dove: [sequelize.where (..), sequelize.where (..)]' provoca un errore 'sql.replace is not a function'. – NobleUplift

5

sono rimasto bloccato su questo per un po 'oggi fino a quando ho trovato questa risposta. Ho anche trovato un altro modo di fare la stessa query quindi lasceremo un'altra risposta qui.

db.WorkbookQuestion.count({ 
    where: { 
    CorrectAnswerId: { 
     $col: 'AnswerSelectedId' 
    } 
    } 
}); 
Problemi correlati