2012-06-17 22 views
0


我一直在試圖選擇Zend_Db_Table中特定用戶發送/接收的最新消息。我已經在MySQL中查詢工作正常,但是當我嘗試使用joinLeft來完成時,它提供了一個錯誤。

代碼在所述的Zend_Db_Table查詢:在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的附加條件()。如果我將'<'替換爲'=',那麼我不會遇到任何錯誤,但這不符合目的。 任何幫助將不勝感激。

回答

0

將代碼 「... AND m1.date_created < 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'); 
+0

@ tasmaniski-實際上,該代碼必須在joinLeft()ON狀態。如果我把它放在where子句中,它將不起作用。 –

+0

我這樣做,沒有得到一個錯誤...如果你解決了發送答案。 – tasmaniski

+0

什麼是「那」?你在做什麼?儘管如此,我仍然遇到同樣的錯誤。 –

相關問題