sql >> Database >  >> RDS >> Mysql

Bestellen door binnen groep door in Leer 2

Ik heb het uiteindelijk opgelost met een gecorreleerde subquery:

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

Op die manier negeert de sortering andere ArticleView's dan de meest recente voor een bepaald artikel. Hoewel ik vermoed dat dit redelijk slecht presteert in vergelijking met de andere onbewerkte SQL-oplossingen - alle antwoorden met betere prestaties zouden nog steeds zeer op prijs worden gesteld :).




  1. Is er een manier om OracleCommand.BindByName te dwingen standaard waar te zijn voor ODP.NET?

  2. SQLite en database-initialisatie

  3. Een postgres-back-upbestand herstellen via de opdrachtregel?

  4. Hoe alle kolommen en een telling(*) in dezelfde query te selecteren