我的SQL技能非常缺乏,所以我无法弄清楚如何形成我需要的查询.
我有两个具有一对多关系的db模型,定义如下:
class Parent(db.Model):
__tablename__ = 'parent'
id = db.Column(db.Integer, primary_key = True)
children = db.relationship('Child',
backref = 'parent',
lazy = 'joined')
class Child(db.Model):
__tablename__ = 'child'
id = db.Column(db.Integer, primary_key = True)
parent_id = db.Column(db.Integer, db.ForeignKey('parent.id'))
value = db.Column(db.String(140))
Run Code Online (Sandbox Code Playgroud)
我希望能够形成一个查询,返回满足三个条件的所有父母:
1:有一个或多个孩子,其值包含'value1'
2:有一个或多个孩子,其值包含'value2'
3:没有孩子,其值包含'value3'或'value4'
对于此示例数据:
Parents:
id |
1 |
2 |
3 |
4 |
Children:
id | parent_id | value
1 | 1 | 'value1'
2 | 1 | 'value2'
3 | 1 | 'value3'
4 | 1 …Run Code Online (Sandbox Code Playgroud)