SQLALCHEMY 获取具有特定唯一值的记录

问题描述 投票:0回答:1

下午好,请告诉我如何在 SQLALCHEMY 中获取记录数组,以便某个字段不重复。假设我有用户: User([email protected] , name='Mike'), User(email='[email protected] ', name='Bob'), User(email='[email] protected] ', name='John'),我需要获取电子邮件不重复的用户数组,例如 [用户 mike,用户 bob]。预先感谢您的回答,对英语感到抱歉,这不是我的母语,而且我说得不好

sqlalchemy
1个回答
0
投票

可能最直接的方法是

  • 创建一个子查询,使用
    MIN()
    GROUP BY
    检索“唯一”属性的不同值的 PK 值,然后
  • 在主查询的
    IN
    子句中使用该子查询
with Session(engine) as sess:
    id_list = select(func.min(User.id)).group_by(User.email)
    results = sess.scalars(select(User).where(User.id.in_(id_list))).all()
    pprint(results)
    """
    [User(id=1, name='Mike', email='[email protected]'),
     User(id=2, name='Bob', email='[email protected]')]
    """
© www.soinside.com 2019 - 2024. All rights reserved.