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

तालिका संघों में शामिल होने की संख्या के आधार पर रेल ActiveRecord क्रमबद्ध करें

निम्न का प्रयास करें:

@resources = Resouce.select("resources.*, COUNT(votes.id) vote_count")
                    .joins(:votes)
                    .where(language_id: "ruby")
                    .group("resources.id")
                    .order("vote_count DESC")

@resources.each { |r| puts "#{r.whatever}  #{r.vote_count}" }

0 वोट वाले संसाधनों को शामिल करने के लिए, बाहरी जुड़ाव का उपयोग करें। यदि नीचे दिया गया उदाहरण काम नहीं करता है, तो आपको सही संबंधों में शामिल होने के लिए जॉइन स्टेटमेंट को बदलना होगा।

@resources = Resource.select("resources.*, COUNT(votes.id) vote_count")
                     .joins("LEFT OUTER JOIN votes ON votes.votable_id = resources.id AND votes.votable_type = 'Resource'")
                     .where(language_id: "ruby")
                     .group("resources.id")
                     .order("vote_count DESC")


  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 में n दिनों में कोई वर्षगांठ आ रही है

  2. मैसकल मैच ... बनाम साधारण % टर्म% की तरह

  3. Android से SQLite डेटाबेस को MySQL डेटाबेस में कॉपी कैसे करें (प्रतिकृति/सिंक)

  4. उसी क्वेरी में चुनें और अपडेट करें

  5. MySQL रिमोट कनेक्शन [हमेशा की तरह नहीं]