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

ActiveRecord - प्रत्येक समूह से पहले रिकॉर्ड का चयन करें

मुझे नहीं पता कि आप most_recent_chat_received_from_connected_users को कैसे कॉल कर सकते हैं , जो आपके Conversation . का एक उदाहरण तरीका है क्लास, User . के उदाहरण पर त्रुटि प्राप्त किए बिना, लेकिन मैं वार्तालाप मॉडल में एक कस्टम खोजक जोड़ूंगा:

class Conversation < ActiveRecord::Base
  # ...

  def self.most_recent_for(user_id)
    select('DISTINCT ON (sender_id) *').where(reciever_id: user_id).order("sender_id, created_at DESC")
  end

  # For MySQL you could have used:
  #
  # def self.most_recent_for(user_id)
  #   where(reciever_id: user_id).group("sender_id").order("created_at DESC")
  # end

  # ...
end

अब आप अपने नियंत्रक में वांछित वार्तालाप प्राप्त कर सकते हैं:

@conversations = Conversation.most_recent_for(current_user.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. Django JSONField

  3. रेल 3 अद्वितीय बाधा अपवाद पोस्टग्रेज को अनदेखा करता है

  4. एक PostgreSQL तालिका में CSV डेटा लोड हो रहा है

  5. c3p0 के साथ हाइबरनेट:createClob () अभी तक लागू नहीं किया गया है