我有一个大致如下的关系:
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 的地方(即内部连接)。
如果我做:
Parent->findOne({
include: [
{model: Children1, required: false},
{model: Children2, required: false}
]
})
它将带来 Parent,如果有,它将带来 Children1 和/或 Children2。 (即左连接)。
我想要做的是当且仅当 Children1 或 Children2 或 ChildrenN 存在时才带上 Parent。可以是 ChildrenN 中的任何一个,也可以是他们所有人。只要有至少1个,我就想带Parent。
有任何想法吗?
最佳答案
将 required: true
添加到您的包含对象,以使每个连接成为正确的连接。你有四个单独的 child table 有什么理由吗?
关于mysql - Sequelize : Parent with at least one children,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38504835/