如何比较Sequelize查询中的表之间的值

时间:2016-03-07 15:57:09

标签: sequelize.js

我该怎么做,这只是我遇到麻烦的最后一行?对话显然属于请求。

SELECT * FROM Dialogues AS Dialogue,Requests AS Request
WHERE Dialogue.RequestId=Request.id
AND Dialogue.updatedAt < Request.updatedAt

我实际上需要进一步限制请求仅限于那些反对具有universalId = VALUE和Dialogue.executed&gt;的对话的人。 0, 我当然可以轻松做到,

但是如何进行以下操作?$ gt:代替“Dialogue.updatedAt”后会发生什么?

myValue=something;
Dialogue.findAll({
  include : {
    model : Request,
    where:{updatedAt:{$gt:"Dialogue.updatedAt"}}
    include: {
      model:Dialogue,
      where:{
         PartyId:myValue,
         executed:{$gt:0}
      }
    }
  }
}

2 个答案:

答案 0 :(得分:1)

您也可以尝试-

const Sequelize = require('sequelize'); 
const op = Sequelize.Op;

myValue=something;

Dialogue.findAll({
  include : {
    model : Request,
    where:{updatedAt:{$gt: {[op.col]: 'Dialogue.updatedAt'}}}
    include: {
      model:Dialogue,
      where:{
         PartyId:myValue,
         executed:{$gt:0}
      }
    }
  }
}

答案 1 :(得分:0)

如果你正确阅读了doco,你会发现$ col运算符,所以你只需要去

sourceField:{$西:&#39; otherTable.otherfield&#39;}