简体   繁体   English

zend框架查询

[英]zend framework query

Can someboby please help me on this query. 有人可以帮我解决这个问题吗? Basicall i know how to join tables in Zend Framework but what i can't figure out is the last part which starts "AND......" thats where i start my subquery.My query goes like Basicall我知道如何在Zend Framework中联接表,但是我不知道是最后一个以“ AND ......”开头的部分,也就是我开始子查询的地方。我的查询就像

SELECT requests.`email`,requests.`title`, `request_category`.`request_category_name`,
       `request_route_category`.`department_id`,`departments`.`department_name`
 FROM requests 
 JOIN `request_category` ON requests.`requests_category_id` = request_category.`request_category_id` 
 JOIN `request_route_category` ON `request_category`.`path_id` = `request_route_category`.`path_id` 
 JOIN `departments` ON `request_route_category`.`department_id` = `departments`.`department_id` 
                    AND (SELECT `department_id` 
                         FROM `request_route_category` 
                         WHERE `request_route_category`.`department_id`=`departments`.`department_id` 
                         AND `request_route_category`.`is_complete`=0 
                         LIMIT 1)=7

I have this for now 我现在有这个

$select=$this->select()
        ->setIntegrityCheck(false)
        ->from($this->_name,array('reqemail'=>'email','reqcreated'=>'created'))
        ->join('request_category', 'requests.requests_category_id=request_category.request_category_id',array('catpath'=>'path_id','catid'=>'request_category.request_category_id','catname'=>'request_category_name'))
        ->join('request_route_category', 'request_category.path_id=request_route_category.path_id',array())
        ->join('departments','request_route_category.department_id=departments.department_id');

As far as I know you cannot do SubQueries with Join with Zend_DB but you can do that: 据我所知,您无法使用Zend_DB的Join进行子查询,但您可以这样做:

$subQuery = $this->select()
        ->setIntegrityCheck(false)
        ->from('request_route_category')
        ->where('request_route_category.department_id = departments.department_id')
        ->where('request_route_category.is_complete = ?', 0)
        ->limit(1);

$sql = $select=$this->select()
    ->setIntegrityCheck(false)
    ->from($this->_name,array('reqemail'=>'email','reqcreated'=>'created'))
    ->join('request_category', 'requests.requests_category_id=request_category.request_category_id',array('catpath'=>'path_id','catid'=>'request_category.request_category_id','catname'=>'request_category_name'))
    ->join('request_route_category', 'request_category.path_id=request_route_category.path_id',array())
    ->join('departments','request_route_category.department_id=departments.department_id AND ('.$subQuery.')=7');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM