2017-04-22 10 views
0

그래서 관계 필드의 값으로 쉽게 선택할 수는 있지만 관계의 수에 따라 선택하고 순서를 정하는 방법을 이해할 수는 없습니다. 특히 내가하고 싶은 일은 최소한 하나의 게시물을 가진 모든 사용자를 선택한 다음 가장 많은 게시물을 가진 사용자가 주문하는 것입니다. 난 게시물 개수로 데이터베이스에 여분의 필드를 저장하지 않고이 작업을 수행하거나, 그들 모두를 선택하고 수동으로 그들을 정렬 싶어요. 이 작동하지 않는 것하지만SQLAlchemy에서 모델을 가지고있는 관계의 수만큼 선택하고 동일한 수로 순서를 매기려면 어떻게해야합니까?

User.query.filter(len(User.posts.all()) > 0).all() 

같은

뭔가, 예를 들어 이상적 일 것이다.

아이디어가 있으십니까?

답변

0

사용 having()

from sqlalchemy import func 

session.query(User).\ 
     join(User.posts).\ 
     group_by(User).\ 
     having(func.count(Post.id) > 0).\ 
     order_by(func.count(Post.id).desc()) 
+0

덕분에,이 내가 필요 정확히이다. –