1

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

クエリの出力ではresults、Zend では 1 つの空の行が返され、MySQL では正しい行が直接返されます。

4

1 に答える 1

3

どうやら、必要な 3 番目のパラメーター (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 のドキュメントです。

于 2012-08-10T12:56:24.713 に答える