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で、PMポイントを保持する別のテーブルが呼び出され、city_pmCityとCity_Pmの2つのモデルがあると仮定します...

あなたの見解では:

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 に答える