列表中的列包括sequelize

时间:2017-05-04 07:56:47

标签: sql join sequelize.js

前提是我在sequelize

中有以下声明
return models.VehicleModel
            .findAll({
                include: [
                    {
                        attributes: ['id'],
                        model: models.Unit
                    },
                    {
                        model: models.myPattern,
                        where: {
                            VehicleModelId: { $in: data.VehicleModelIds }
                        },
                        include: [
                            {
                                model: models.Calendar,
                                include: [
                                    {
                                        model: models.Restrictions,
                                        include: [
                                            {
                                                model: models.RestrictionType
                                            }],
                                        where: {
                                            //THIS IS THE LINE I NEED TO CHANGE SOMEHOW
                                            UnitId: { $in: [models.Unit.id] }
                                        },
                                        required: false
                                    }
                                ]
                            }
                        ]
                    }
                ],
                where: {
                    id: { $in: data.VehicleModelIds }
                }
            })

这会在查询中给我NULL,如下所示:

[myPattern.Calendar.Restrictions].UnitId IN (NULL) AND ....

我希望能够获得以下内容:

[myPattern.Calendar.Restrictions].UnitId IN (Units.id) AND ....

这是因为它们不是强制性的,但当然应该链接到与车型相对应的适当单位。

myPatternCalendar相关联,后者又与Restrictions相关联,因此与Units相关联。 全部使用id列。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

找到它

所以对于那些寻找“如何”

的人
//...
where: {
    UnitId: { $in: [models.sequelize.literal('Units.id')] },
}
//...and so on

这将在查询中输出:[myPattern.Calendar.Restrictions].UnitId IN (Units.id)