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

अपने साथ वैकल्पिक has_one संबद्धता के लिए दायरा

मैं पहली बार purchase . शब्दों से भ्रमित हुआ और sale . लेकिन आपका अपडेट मुझे विश्वास है कि मुझे समस्या को और अधिक समझने में मदद मिली।

तो जो मैं समझ गया वह है जो कुछ भी नहीं बिका है वह है खरीद घटाना बिक्री। निम्नलिखित आपको वह सूची देनी चाहिए:

scope :unsold, lambda {includes(:sale).select { |p| !p.sale.present? } }

अपडेट करें:

यहाँ क्या हो रहा है इसकी एक संक्षिप्त व्याख्या:

दायरा वास्तव में डेटाबेस में सभी काम नहीं करता है। यह पहले शामिल बिक्री सहित सभी खरीद का एक SQL चयन करता है। यह आपको आपके purchase . में सभी रिकॉर्ड देता है मेज़। फिर यह दायरा वापस रूबी Array पर आ जाता है select . पर तरीका। विधि सभी खरीदारियों को लौटाती है p बिना sale . के जो बिक्री के साथ खरीद को नकार कर किया जाता है।

आशा है कि यह स्पष्ट हो गया है कि दायरा क्या कर रहा है।

अपडेट 2:

एक दायरा जो श्रृंखलाबद्ध है!

scope :unsold, lambda { where('id not in (?)', Sale.pluck(:linked_indent_id)) }

इस दायरे में id उन खरीदारियों की संख्या जो sale में नहीं हैं का linked_indent_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. जब स्थिति (पुरानी) हो तो ट्रिगर डालें या अपडेट करें

  2. कैसे pg_restore

  3. Jboss AS7 कनेक्शन पूल फिर से कनेक्ट नहीं होगा

  4. तालिका की तरह पेड़ से आईडी और वंशज का उपयोग करके दो तालिकाओं में शामिल हों

  5. रेल। जहां () क्वेरी काम नहीं कर रही है