在我的一生中,我无法理解如何使用Sequelize.js为不同的字段生成和/或SQL。考虑到下面的表格(见下文),如何使用sequelize.js生成下面的SQL?
SELECT *
FROM FactTable1
JOIN DimTable1 ON FactTable1.FKey_DimTable1 = DimTable1.Id
JOIN DimTable2 ON FactTable1.FKey_DimTable2 = DimTable2.Id
//Important Part! Each grouped (ie. in parenthesis) expression below referes to two different tables/aliases.
WHERE (DimTable1.Dim1 = 'Foo' AND FactTable1.Fact1 = 'Bar') OR
(DimTable2.Dim2 = 'Baz' AND FactTable1.Fact2 = 'Bugz')FactTable1
DimTable1
DimTable2
提前感谢!
发布于 2017-07-15 18:33:21
Sequelize有一个被描述为最高级别的地方从句的特性,它允许父Where子句引用连接(包括)实体的属性。上面的查询使用下面的JSON提供服务。
db.FactTable1.findAll({
where: {
$or: [
$and:[
{
'$dimtable1.Dim1$': 'Foo'
},
{
Fact1: 'Bar'
}
],
$and:[
{
'$dimtable2.Dim2$': 'Baz'
},
{
Fact2: 'Bugz'
}
]
]
},
include: [
{
model: DimTable1,
required: true,
as: 'dimtable1'
},
{
model: DimTable2,
required: true,
as: 'dimtable2'
}
]
});https://stackoverflow.com/questions/45093478
复制相似问题