sql >> Databáze >  >> RDS >> Mysql

Zahrnout, vybrat, seřadit, omezit z více modelů (jeden dotaz)

Zde je návod, jak jsem zahrnul všechny potřebné modely, tento dotaz je přeložen na 5 dotazů SQL, protože se nespojí předběžné načtení (běží v samostatném dotazu).

Message.joins("LEFT JOIN messages AS m ON messages.id != m.id 
              AND m.conversation_id = messages.conversation_id 
              AND messages.created_at < m.created_at")
       .where('m.id IS NULL')
       .joins("INNER JOIN conversation_participants AS cp 
              ON cp.conversation_id = messages.conversation_id 
              AND cp.user_id = #{user_id}")
       .order("cp.seen, cp.updated_at DESC")
       .limit(5)
       .includes(:sender)
       .includes(conversation: [{conversation_participants: :user}])



  1. Zkopírujte uživatelská oprávnění mezi databázemi na stejném serveru

  2. Objekt 'DF__*' je závislý na sloupci '*' - Změna int na double

  3. Cílovou tabulku UPDATE nelze aktualizovat

  4. JDBC se připojuje k databázi Oracle pomocí SSL