2012-08-10 72 views
1

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

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'); 

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

回答

1

已解决。我找到了解决方案here

显然我在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');