使用< joinLeft Zend_Db_Table中的运算符给出“参数号无效”错误

时间:2012-06-17 08:43:01

标签: php zend-framework pdo left-join


我一直在尝试选择Zend_Db_Table中为特定用户发送/接收的最新消息。我在MySQL中查询工作正常但是当我尝试使用joinLeft时,它会出错。

Zend_Db_Table中查询的代码:

$select=$this->select()
->setIntegrityCheck(false)
->from(array('m1'=>'messages'))
->joinLeft(array('m2'=>'messages'), 'm1.from_id=m2.from_id AND m1.date_created < m2.date_created')
->where('m2.date_created IS NULL')
->where('m1.from_id=? OR m1.to_id=?', $to)
->order('m1.date_created DESC');

问题出在joinLeft()的附加条件中。如果我替换'&lt;'使用'=',我没有错误,但这不符合目的。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

将代码“... AND m1.date_created&lt; m2.date_created”放在新行中,就像这样

$select=$this->select()
->setIntegrityCheck(false)
->from(array('m1'=>'messages'))
->joinLeft(array('m2'=>'messages'), 'm1.from_id=m2.from_id')
->where('m1.date_created < m2.date_created')
->where('m2.date_created IS NULL')
->where('m1.from_id=? OR m1.to_id=?', $to)
->order('m1.date_created DESC');