flask-sqlalchemy查询具有不同值的多行

时间:2018-09-20 03:17:41

标签: python postgresql sqlalchemy

我尝试从第一行开始获得2行,但是它应该具有不同的值。

例如,

class Table(db.Model):
    id = db.Column(primary_key)
    category = db.Column(string)
    user_id = db.Column(Integer, Foreign(User))

two_rows = Table.query.filter_by(category='category1').limit(2).all()

使用上面的代码,我们可以获得两行。但是它永远不能确保每一行都有不同的user_id。
如何确保(或查询)它?

所以我期望结果

而不是

[
<Table id=1, category='category1', user_id=1>, 
<Table id=2, category='category1', user_id=1>
]

应该是

[
<Table id=1, category='category1', user_id=1>, 
<Table id=3, category='category1', user_id=2>
]

[+]我当前正在使用

  • postgresql
  • flask-sqlalchemy

1 个答案:

答案 0 :(得分:1)

如果您想将查询限制为2个具有不同user_id的结果,只需使用distinct()

two_rows = Table.query.filter_by(category='category1').distinct(Table.user_id).limit(2).all()

更高的精度herethere,当然还有the basics here