所以当从续集中请求一个小组时如下:
return models.WorkingCalendar
.findAll({
attributes: [
'WorkingCalendar.PeriodId',
'WorkingCalendar.date',
'Period.name'
],
include: [
{
model: models.Period,
attributes: []
}
],
where: {
GetSudoId: currentGetsudo.id,
UnitPlantId: unitPlantId
},
group: ['WorkingCalendar.PeriodId',
'WorkingCalendar.date',
'Period.name'],
});
Sequelize将运行此查询:
SELECT
[WorkingCalendar].[id],
[WorkingCalendar].[PeriodId],
[WorkingCalendar].[date],
[Period].[name]
FROM [WorkingCalendars] AS [WorkingCalendar]
LEFT OUTER JOIN [Periods] AS [Period] ON [WorkingCalendar].[PeriodId] = [Period].[id]
WHERE [WorkingCalendar].[GetSudoId] = 1 AND [WorkingCalendar].[UnitPlantId] = N'1'
GROUP BY [WorkingCalendar].[PeriodId], [WorkingCalendar].[date], [Period].[name];
然而我从来没有要求WorkingCalender.id
我似乎无法摆脱这一点。
如何确保续集不会从id
获取此workingCalendar
?
我已经发现,对于关联,属性应该是一个空数组,但不能用于主对象,因为我只需要3列。
答案 0 :(得分:0)
所以这是不可能的。 ORM需要与数据库的关系,这是通过id完成的;如果没有身份证明就无法得到这个。
然而,您可以做的是使用sequelize进行原始查询。
即
makefile
希望这有助于任何人挣扎。