Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Uporządkuj według wewnątrz grupy według w Doktrynie 2

W końcu rozwiązałem to za pomocą skorelowanego podzapytania:

$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)')

W ten sposób sortowanie ignoruje widoki ArticleView inne niż najnowsze dla danego artykułu. Chociaż domyślam się, że działa to dość słabo w porównaniu z innymi surowymi rozwiązaniami SQL - wszelkie odpowiedzi o lepszej wydajności nadal będą mile widziane :).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstaw arabski tekst MySQL

  2. Jak obliczyć różnicę czasu z harmonogramem działającym w trybie czarno-białym z dwoma znacznikami czasu?

  3. Jak obsłużyć zbyt wiele jednoczesnych połączeń nawet po wykorzystaniu puli połączeń?

  4. SQL:Zwracanie najczęstszej wartości dla każdej osoby

  5. Warunkowa transformacja podziału:eksport danych z serwera SQL do baz danych Oracle i MySQL