2017-02-14 60 views
1

我喜欢下面的查询转换成sequelize代码Sequelize - 加入多列

select * from table_a 
inner join table_b 
on table_a.column_1 = table_b.column_1 
and table_a.column_2 = table_b.column_2 

我已经尝试了许多方法和遵循许多提供解决方案,但我无法实现从sequelize代码所需的查询。

马克斯我实现的是以下几点:

select * from table_a 
inner join table_b 
on table_a.column_1 = table_b.column_1 

我想第二个条件也。

and table_a.column_2 = table_b.column_2 

任何正确的方法来实现它?

回答

3

您需要定义自己的on子句JOIN声明

ModelA.findAll({ 
    include: [ 
     { 
      model: ModelB, 
      on: { 
       col1: sequelize.where(sequelize.col("ModelA.col1"), "=", sequelize.col("ModelB.col1")), 
       col2: sequelize.where(sequelize.col("ModelA.col2"), "=", sequelize.col("ModelB.col2")) 
      }, 
      attributes: [] // empty array means that no column from ModelB will be returned 
     } 
    ] 
}).then((modelAInstances) => { 
    // result... 
}); 
+0

谢谢!它按我的需要工作。 – smkrn110