Django 中的內連接多個表
要顯示儲存在單獨表中的出版物的城市、州和國家/地區,您可以使用select_lated() 方法在Django 中執行內部聯結。
<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>
傳回的pubs 遊標包含預先填入相關表的值,讓您無需額外的資料庫命中即可存取它們:
<code class="html">{% for p in pubs %} {{ p.city.city_name}} # p.city has been populated in the initial query # ... {% endfor %}</code>
這種方法非常高效,可以防止不必要的查詢來檢索相關資料。
以上是如何從 Django 的相關表格中高效檢索城市、州和國家/地區資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!