这是second time我问这样的问题,但由于上一篇文章没有得到回答,我只想尝试更具体一点。
考虑下表:
id text dialog_id Timestamp
666 Hi 11 2017-01-21
667 How're u? 11 2017-01-01
668 Never 26 2016-03-01
669 Say 26 2016-03-04
770 Never 26 2016-03-29
相应的ORM模型如下所示:
class Dialog(models.Model):
pass
class MessageBody(models.Model):
dialog = models.ForeignKey(Dialog, models.DO_NOTHING)
text = models.TextField()
timestamp = models.DateTimeField()
对于每个对话框,我想在对话框中获取带有最新时间戳的消息ID。因此,上述示例的所需输出应为:
[666, 770]
为什么呢?因为666
在dialog_id = 11的对话框中具有最大的时间戳(2017-01-21
),而770
- 是dialog_id = 26的对话框中的冠军。
我不想相信Django工具不足以满足这一要求,我不得不进行纯SQL查询。请帮帮我。