使用Zend_Db_Select复制MySQL LEFT OUTER JOIN

时间:2012-08-10 12:47:49

标签: mysql zend-framework zend-db zend-db-select

我一遍又一遍地尝试使用Zend_Db_Select对象复制我的MySQL查询,我无法在Zend中复制结果。

MySQL查询:

SELECT s.id, s.project_id 
FROM staging s 
LEFT OUTER JOIN results r ON s.id = r.id 
WHERE r.id IS NULL

我在Zend的所作所为:

$query = $db->select()
           ->from(array('s' => 'staging'), array('id', 'project_id'))
           ->joinLeft(array('r' => 'results'), 's.id = r.id')
           ->where('r.id IS NULL');

查询的输出在Zend中给我一行空results,在MySQL中直接给出正确的行。

1 个答案:

答案 0 :(得分:2)

显然我在leftJoin中遗漏了一个必需的第三个参数,在这种情况下是一个空数组array()

所以,现在我的最终工作代码如下所示:

$query = $db->select()
           ->from(array('s' => 'staging'), array('id', 'project_id'))
           ->joinLeft(array('r' => 'results'), 's.id = r.id', array())
           ->where('r.id IS NULL');

这是Zend_Db_Select documentation