2012-06-17 3 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 <이 m2.date_created m1.date_created"사실 tasmaniski- @이

$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

처럼, 새로운 라인은, 그 코드는 조건으로 joinLeft()에 있어야합니다. where 절에 넣으면 작동하지 않습니다. –

+0

나는 그 일을하고 있고 오류를 얻지 못하고있다 ... 당신이 대답을 보내면 해결한다. – tasmaniski

+0

"그"가 무엇입니까? 뭐하고 있니? 그래도 여전히 같은 오류가 발생합니다. –