ホームページ > データベース > mysql チュートリアル > 「select_popular」を使用して Django で内部結合を実行するにはどうすればよいですか?

「select_popular」を使用して Django で内部結合を実行するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-10-29 21:26:02
オリジナル
699 人が閲覧しました

How to Perform an Inner Join in Django Using `select_related`?

Django で内部結合を実行する方法

Django アプリケーションで複数のテーブルから相互接続されたデータを表示するには、次のことが必要になる場合があります。内部結合操作を実行します。 select_relative メソッドを活用すると、これを簡単に実現できます。

次のシナリオを考えてみましょう。出版物の都市、州、国の名前を HTML テンプレートに表示したいとします。ただし、これらの詳細は別のテーブルに保存されます。内部結合を使用してこの情報を取得するには、次のように select_popular メソッドを利用できます:

<code class="python">pubs = publication.objects.select_related('country', 'country_state', 'city')</code>
ログイン後にコピー

このクエリは次のような SQL ステートメントを生成します:

<code class="sql">SELECT "publication"."id", "publication"."title", ..., "country"."country_name", ...  
FROM "publication" 
INNER JOIN "country" ON ( "publication"."country_id" = "country"."id" ) 
INNER JOIN "countrystate" ON ( "publication"."countrystate_id" = "countrystate"."id" ) 
INNER JOIN "city" ON ( "publication"."city_id" = "city"."id" ) </code>
ログイン後にコピー

取得された値は自動的に ORM モデル インスタンスに変換されます。これにより、次に示すように、ループ内のそれぞれのオブジェクトを通じて関連するテーブル値にアクセスできるようになります。

<code class="html">{% for p in pubs %}
     {{ p.city.city_name}}  # p.city has been populated in the initial query
     # ...
{% endfor %}</code>
ログイン後にコピー

この手法を採用することで、複数のテーブルから効率的にデータをフェッチし、相互接続された情報を HTML に表示できます。事前に選択された順方向リレーションに対する追加のデータベース ヒットを回避しながら、テンプレートを作成します。

以上が「select_popular」を使用して Django で内部結合を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート