2

ユーザーとツイートを使用して、私の問題を説明してみましょう。

これらは私のモデルです(Peeweeドキュメントから):

class User(BaseModel):
    username = CharField()

class Tweet(BaseModel):
    user = ForeignKeyField(User, related_name='tweets')
    message = TextField()

これは私のクエリです:

User.select().annotate(Tweet).order_by(fn.Count(Tweet.id).desc())

まだツイートしていないユーザーが何人かいますが、クエリでそれらを取得したいと思います。残念ながら、このクエリはツイートのないユーザーには機能しません。

どうすればこの問題を解決できますか?

4

1 に答える 1

3

わかりました、解決しました。

私の問題がある場合は、単に使用してOUTER JOINください。

ここに私の新しいクエリがあります:

User.select(User, fn.Count(Tweet.id).alias('count')) \
    .join(Tweet, JOIN_LEFT_OUTER).group_by(User)
于 2012-10-31T14:48:46.617 に答える