【发布时间】:2016-11-25 01:57:46
【问题描述】:
我的关系大致如下:
Parent: [id, name]
Children1: [id, parent_id, name]
Children2: [id, parent_id, name]
Children3: [id, parent_id, name]
Children4: [id, parent_id, name]
Parent
.hasMany -> Children1
.hasMany -> Children2
.hasMany -> Children3
.hasMany -> Children4
所以,如果我这样做:
Parent->findOne({
include: [{model: Children1}, {model: Children2}]
})
它只会将 Parent 带到有 children1 和 children2 的地方(即 Inner join)。 如果我这样做:
Parent->findOne({
include: [
{model: Children1, required: false},
{model: Children2, required: false}
]
})
它会带来 Parent,如果有的话,它会带来 Children1 和/或 Children2。 (即左连接)。
我想要做的是当且仅当 Children1 或 Children2 或 ChildrenN 存在时才带上父母。可以是任何一个 ChildrenN,也可以是所有的 ChildrenN。只要至少有 1 个,我想带上家长。
有什么想法吗?
【问题讨论】:
标签: mysql node.js sequelize.js