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

रेल में एकाधिक तालिका जुड़ती है

आपके प्रश्न में मिली SQL क्वेरी को फिर से लिखने के लिए, मुझे लगता है कि यह निम्न जैसा होना चाहिए (हालाँकि मुझे आपके मॉडल संबंधों को पूरी तरह से देखने में कठिनाई हो रही है, इसलिए यह थोड़ा अनुमान है):

RagaContextApplicantsSong.
  joins(:raga_contest_applicants => [:raga_content_rounds], :contest_cat).
  group('raga_contest_rounds.contest_cat_id')

...जैसे कि joins मेथड दोनों जॉइन के साथ-साथ WHERE . का भी ख्याल रखती है खंड, उसके बाद अंत में group कॉल करें।

संदर्भ के लिए और अधिक:

अगर आप एक ही मॉडल से कई एसोसिएशनों में शामिल हो रहे हैं आप उन्हें आसानी से सूचीबद्ध कर सकते हैं :

Post.joins(:category, :comments)
Returns all posts that have a category and at least one comment

अगर आप नेस्टेड टेबल में शामिल हो रहे हैं तो आप उन्हें हैश के रूप में सूचीबद्ध कर सकते हैं:

Post.joins(:comments => :guest)
Returns all comments made by a guest

नेस्टेड एसोसिएशन, एकाधिक स्तर:

Category.joins(:posts => [{:comments => :guest}, :tags])
Returns all posts with their comments where the post has at least one comment made by a guest

आप ActiveRecord क्वेरी इंटरफ़ेस कॉल को भी इस तरह से श्रृंखलाबद्ध कर सकते हैं:

Post.joins(:category, :comments)
...produces the same SQL as...
Post.joins(:category).joins(:comments)

यदि अन्य सभी विफल हो जाते हैं, तो आप हमेशा एक SQL फ़्रैगमेंट को सीधे इसमें पास कर सकते हैं joins विधि अपनी कार्यशील क्वेरी से कुछ और ARQI-केंद्रित करने के लिए एक कदम के रूप में

   Client.joins('LEFT OUTER JOIN addresses ON addresses.client_id = clients.id')
=> SELECT clients.* FROM clients LEFT OUTER JOIN addresses ON addresses.client_id = clients.id



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बहुत अधिक टेबल; MySQL एक जॉइन में केवल 61 टेबल का उपयोग कर सकता है

  2. पाइप स्थापित mysqlclient घातक त्रुटि देता है C1083:फ़ाइल नहीं खोल सकता:'mysql.h':ऐसी कोई फ़ाइल या निर्देशिका नहीं

  3. अनुरोध URL में तालिका का नाम और फ़ील्ड नाम उजागर करना

  4. SQL QUERY एक ही तालिका में दूसरी पंक्ति से डेटा खोजने के लिए एक पंक्ति में एकाधिक खोज

  5. विभिन्न पृष्ठों पर mysqli लगातार कनेक्शन का उपयोग कैसे करें