sql >> データベース >  >> RDS >> Mysql

複数のモデルからの包含、選択、並べ替え、制限(単一のクエリ)

    これが必要なすべてのモデルを含める方法です。プリロードが結合しない(別のクエリで実行される)ため、このクエリは5つのSQLクエリに変換されます。

    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. タイプ:=Eの場合にのみ価格コードを尋ねる必要があります

    2. 文字列を連結/集約するための最適な方法

    3. MySQL-Max()が間違った結果を返す

    4. DAYOFWEEK()の例– MySQL