您可以尝试将查询分为两个
Zend_Db_Select语句-
父查询和子查询。您可以将
Zend_Db_Select对象用作
from()方法的参数,如下所示:
$mainQuery = $db->select();$mainQuery->from('user');$sub = $db->select();$sub->from('company');$mainQuery->from(array('subquery' => $sub));然后您将得到这种查询:
SELECt `user`.*, `sub`.* FROM `user` INNER JOIN ( SELECt `company`.* FROM `company` ) AS `sub`
如您所见,
INNERJOIN当您第二次添加时,它会自动添加
from()-但我认为,可以将查询重写为用户联接,而不是语法中的multi。因此,您应该使用
joinInner()method,因为这样您就可以将连接条件指定为它的第二个参数。
注意,该子查询与主查询类似,因此您可以构建主查询,将其克隆为子查询,并且由于
Zend_Db_Select可能而删除了不必要的部分(
reset()方法)并替换了它们:
$mainQuery = $db->select(); //and rest$subQuery = clone $mainQuery;$subQuery->reset(Zend_Db_Select::WHERe);$subQuery->where(); // and add valid conditions for subquery



