sql之django:根据其他表数据对表数据进行排序

findumars 阅读:37 2024-11-24 20:56:43 评论:0

我已经阅读了(优秀的)文档,但我不知道如何 去做这个。

我有一个代表用户友谊的表叫做 “Shortlist”(包含字段“from_user”和“to_user”:两者都是外键 经典的 auth_user 表。即,from_user 成为 to_user 的 friend )。

我有另一个表,用于记录用户事件/操作 (UserLog)。 在此表中有许多字段,包括“时间戳”和 当然是“用户”字段(auth_user 的外键 表格)

如何从表“Shortlist”中检索特定用户的数据 (from_user) 按 UserLog 表中的时间戳排序?或者我怎样才能 检索按总数排序的特定 from_user 的候选名单数据 记录了“to_user”操作的数量?

换句话说,我想检索所有用户的 friend 最活跃或按最近的操作排序。


感谢您的回答,但我想我可能需要更多帮助。我想要做的是根据用户的事件对用户进行排序(最活跃的用户优先)。事件记录在另一个表中。

例如我想做这样的事情(如果可能的话)

select * from Users U, (select count (id) from UserLog L where U.id=L.user_id) as actions order by actions desc

我还想根据他们的最新操作对它们进行排序(最近操作的用户排在第一位)

关于如何做这些事情的任何想法(或最佳实践)?

请您参考如下方法:

可以使用相关字段语法按另一个表进行排序:

例子:

UserProfile.objects.all().order_by('user__username') 

要根据字段计算事物,请使用 annotations


标签:Django
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号