sql >> Database >  >> RDS >> Mysql

Laatste x blogberichten - maar slechts één keer per gebruiker

Het gebruik van een subquery lijkt te werken - met deze kleine truc:

$options = array(
    'fields' => array('MAX(SubBlog.created)'),
    'conditions' => array('SubBlog.user_id = Blog.user_id')
);
$subquery = $this->subquery('all', $options);

$options = array(
    'order'=>array($this->alias.'.published' => 'DESC'),
    'conditions' => array(
        'User.active' => 1,
        'Blog.status' => self::STATUS_ACTIVE, 
        'Blog.published = ' . $subquery
    ),
    'contain' => array('User.username'),
    'fields' => array(
        'User.id',  'User.username', 
        'Blog.id', 'Blog.headline', 'Blog.published'
    ),
    'limit' => $limit,
);
return $this->find('all', $options);

subquery() is een AppModel-methode:https://github .com/dereuromark/tools/blob/2.0/Lib/MyModel.php#L405



  1. Hoe een afbeelding ophalen uit een SQLite-database?

  2. Hoe Floor() werkt in PostgreSQL

  3. Het geheugenverbruik van mysql op [email-protected] micro-instantie verminderen

  4. Twee dubbele indexen met dezelfde kolommen