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

Doctrine2でグループ内で注文する

    相関サブクエリで解決することになりました:

    $qb
        ->select('a')
        ->from('Article', 'a')
        ->join('a.views', 'v')
        ->orderBy('v.viewDate', 'DESC')
        ->setMaxResults(20)
    
        // Only select the most recent article view for each individual article
        ->where('v.viewDate = (SELECT MAX(v2.viewDate) FROM ArticleView v2 WHERE v2.article = a)')
    

    このように、ソートは、特定の記事の最新以外のArticleViewを無視します。私の推測では、これは他の生のSQLソリューションに比べてパフォーマンスがかなり低いと思いますが、パフォーマンスが向上した回答をいただければ幸いです:)




    1. 3つの異なる日付間隔のデータで1つの列を数回表示する

    2. CodeIgniterエラー-提供された設定を使用してデータベースに接続できません

    3. oraclesqlからpandasdfへのデータのロードを高速化する方法

    4. Djangoを使用して既存のMyISAMデータベースをInnoDBに変換する