【问题标题】:phpactiverecord joins with limitphpactiverecord 加入限制
【发布时间】:2013-02-28 11:44:33
【问题描述】:

向包含连接语句的 activerecord 查询添加限制的正确方法是什么?我已经有一个 activerecord 连接语句,它可以转换为正确的 SQL

static $belongs_to = array(
array('job_request')
);

$requests = $this->all(array(
    'joins' => array('job_request'),
    'conditions' =>  array('DATE(job_date) >= ? AND DATE(job_date) <= ? AND'
                . ' user_id = ?', $start_date, $end_date, $userid))
); 

这将转换为 SQL

SELECT `job_applications`.* FROM `job_applications` INNER JOIN `job_requests`  
ON(`job_applications`.job_request_id = `job_requests`.id) WHERE 
DATE(job_date) >= '2013-01-28' AND DATE(job_date) <= '2013-03-04' 
AND user_id = '1'

但如果我添加限制,则连接将从 SQL 查询中删除

$requests = $this->all(array(
    'joins' => array('job_request'),
    'conditions' =>  array('DATE(job_date) >= ? AND DATE(job_date) <= ? AND'
                . ' user_id = ?', $start_date, $end_date, $userid)),
             array('limit' => 200, 'offset' => 0)

);

生成

SELECT * FROM `job_applications` LIMIT 0,999999

【问题讨论】:

    标签: join phpactiverecord


    【解决方案1】:

    limit 和 offset 属于第一个数组。

    array('conditions'=>'...',
          'joins'=>'...',
          'limit'=>5',
          'offset'=>5
    );
    

    你的数组看起来像

     array('conditions'=>'...',
          'joins'=>'...'),
          array('limit'=>5','offset'=>5)
    );
    

    【讨论】:

      猜你喜欢
      • 2019-04-29
      • 1970-01-01
      • 2015-09-16
      • 2015-06-11
      • 1970-01-01
      • 1970-01-01
      • 2014-05-03
      • 2011-11-10
      • 1970-01-01
      相关资源
      最近更新 更多