我一直在尝试选择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;'使用'=',我没有错误,但这不符合目的。 任何帮助将不胜感激。
答案 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');