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”,然后我想要一个每个城市的最新 pm 点的排名,所以我使用之前的选择来创建一个临时表,并按 pm 点对表进行排序......这就是我试图完成的,我想不出更好的所以我决定创建一个临时表。
最佳答案
我相信左联接可能有助于解决这种情况。您的目标是按最后一个 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 %}
关于mysql - 如何使用 Django 的 ORM 创建临时表以按两个条件对同一列进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16162611/