Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Diurutkan oleh dalam grup oleh dalam Doktrin 2

Saya akhirnya menyelesaikannya dengan subquery yang berkorelasi:

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

Dengan cara itu, jenis mengabaikan ArticleView selain yang terbaru untuk artikel tertentu. Meskipun dugaan saya adalah bahwa ini berkinerja cukup buruk dibandingkan dengan solusi SQL mentah lainnya - jawaban apa pun dengan kinerja yang lebih baik masih akan sangat dihargai :).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kecepatan couchdb vs mysql

  2. Pulihkan database mysql dari file .frm

  3. cari data dari input html di mysql

  4. Menyortir kolom VARCHAR sebagai FLOAT menggunakan operator CAST tidak berfungsi di MySQL

  5. Konektor MySQL c++ tidak mengandung libmysql.lib