Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

django में इनर जॉइन कैसे करें?

आप शायद select_संबंधित , जो इसे प्राप्त करने का स्वाभाविक तरीका है:

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

आप परिणामी SQL को str(pubs.query) . के माध्यम से जांच सकते हैं , जिसके परिणामस्वरूप निम्न पंक्तियों के साथ आउटपुट होना चाहिए (उदाहरण पोस्टग्रेज बैकएंड से है):

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

लौटाए गए कर्सर मानों को तब उपयुक्त ORM मॉडल इंस्टेंस में अनुवादित किया जाता है, ताकि जब आप इन प्रकाशनों पर लूप करते हैं, तो आप संबंधित तालिकाओं के मानों को उनके स्वयं के ऑब्जेक्ट के माध्यम से एक्सेस करते हैं। हालांकि, पूर्व-चयनित अग्रेषित संबंधों के साथ इन पहुंचों के कारण अतिरिक्त डीबी हिट नहीं होंगे:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक परिणामसेट लौटाना

  2. MAMP-Windows पर MySQL सर्वर प्रारंभ नहीं होगा

  3. RMySQL सिस्टम त्रुटि:10060

  4. एक जेपीए/हाइबरनेट एनोटेशन का उपयोग कर एक इंस्टेंस वैरिएबल में एक MySQL char (n) कॉलम को कैसे मैप करें?

  5. ROR माइग्रेशन के दौरान कॉलम प्रकार को दिनांक से दिनांक समय में बदलें