1
CREATE TEMPORARY TABLE TEMP (SELECT * FROM TABLE ORDER BY COLUMN_A);
SELECT * FROM TEMP ORDER BY COLUMN_B;

我有一张表存储每个城市的最后 24 小时下午点,我想选择每个城市的最新下午点。所以我使用“Select * from city_pm order by date desc limit the_count_of_city”,然后我想有一个排名每个城市的最新下午点,所以我使用之前的选择创建一个临时表,并按下午点对表进行排序......这是我想要完成的,我想不出更好的方法所以我决定创建一个临时表。

4

1 回答 1

2

我相信左连接可能有助于解决这种情况。您的目标是在最后一个 PM 点之前对城市进行排序。

假设您的表的主键city是 city_id,并且一个名为的单独表city_pm保存 PM 点,并且您有两个模型 City 和 City_Pm...

在您看来:

cities = City.objects.all()

在您的模型中:

class City(models.Model):
    # fields ...

    def get_latest_pm(self):
        try:
            return City_Pm.objects.filter(city_id=self.pk).order_by("-date")[:1].get()
        except:
            return None

在您的模板中:

{% for city in cities %}
    {{ city.get_latest_pm }}
{% endfor %}
于 2013-04-26T17:55:41.693 回答