sql >> Databáze >  >> RDS >> Mysql

Jak vytvořit vnitřní spojení v django?

Pravděpodobně hledáte select_related , což je přirozený způsob, jak toho dosáhnout:

pubs = publication.objects.select_related('country', 'country_state', 'city')

Výsledné SQL můžete zkontrolovat pomocí str(pubs.query) , jehož výsledkem by měl být výstup v následujících řádcích (příklad je z backendu postgres):

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" ) 

Vrácené hodnoty kurzoru jsou poté převedeny do příslušných instancí modelu ORM, takže když tyto publikace projdete smyčkou, získáte přístup k hodnotám souvisejících tabulek prostřednictvím jejich vlastních objektů. Tyto přístupy v rámci předem vybraných dopředných vztahů však nezpůsobí další zásahy do databáze:

{% for p in pubs %}
     {{ p.city.city_name}}  # p.city has been populated in the initial query
     # ...
{% endfor %}


  1. Jak funguje funkce FORMAT() v SQL Server (T-SQL)

  2. SQL Server Převod celého čísla na binární řetězec

  3. Jak importuji soubor SQL pomocí příkazového řádku v MySQL?

  4. Jak mohu přidat nové sloupce do databáze SQLite po vydání aplikace pro Android?