Mysql
 sql >> база данни >  >> RDS >> Mysql

Подредете по в рамките на група по в доктрина 2

В крайна сметка го реших с корелирана подзаявка:

$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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Принудително пускане на mysql, заобикаляйки ограничението на външния ключ

  2. изберете заявка и пребройте въз основа на условие

  3. ИЗХОДНА клауза в MySQL

  4. MSQL:Как да презапишем запис само ако новият е по-висок? иначе създайте нов запис

  5. Грешка със знаци в html iframe