Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

X lần nhập blog cuối cùng - nhưng chỉ một lần cho mỗi người dùng

Sử dụng truy vấn con có vẻ hiệu quả - với mẹo nhỏ sau:

$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 () là một phương thức AppModel: https://github .com / dereuromark / tools / blob / 2.0 / Lib / MyModel.php # L405



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để trừ 30 ngày từ ngày hiện tại trong mysql?

  2. THAM GIA với GROUP BY trong DB chuẩn hóa về Tài nguyên, Chủ đề và Chương

  3. Bật đăng nhập vùng chứa mysql docker

  4. Truy vấn con với EXISTS so với IN - MySQL

  5. Truy vấn xếp hạng nhóm PHP MYSQL