小编sch*_*lie的帖子

SQLAlchemy - 筛选查询,排除其中一个子符合条件的父项

我的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)

python sqlalchemy flask-sqlalchemy

3
推荐指数
1
解决办法
1693
查看次数

标签 统计

flask-sqlalchemy ×1

python ×1

sqlalchemy ×1