sql >> Databáze >  >> RDS >> Mysql

Řaďte ​​podle v rámci skupiny podle v Doktríně 2

Nakonec jsem to vyřešil korelovaným poddotazem:

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

Tímto způsobem řazení ignoruje zobrazení ArticleView jiné než nejnovější pro daný článek. I když můj odhad je, že to funguje poměrně špatně ve srovnání s jinými nezpracovanými řešeními SQL - jakékoli odpovědi s lepším výkonem by byly stále velmi oceněny :).




  1. Asynchronní čekání při provádění funkce C#

  2. Je možné použít IF(cond1 AND cond2,result,otherse result) v MySQL?

  3. mysql CREATE USER

  4. Spustit změnu hodnoty sloupce?