2013-02-14 9 views
0

행 쿼리에서 zend select가 다른 쿼리에서 나를 반환했다고 MySQL 쿼리를 실행하고 싶습니다.이전 쿼리의 행 집합에 대한 쿼리 만들기 Zend

그 이유는 이전의 "보다 일반적인"쿼리가 필요하고 내가 원하는 것보다 더 정확한 행을 가져와야하기 때문입니다.

데이터베이스에 다른 요청을하지 않으려면 방법이 있습니까?

긴 이야기는 내가 사용자 입력 패턴과 일치하는 다른 도시에 대한 정보를 나에게 돌려주는 자동 완성 플러그인을 사용하고 있다는 것입니다. 이것은 까다로운 쿼리이며 사용자가 문제의 도시와 관련이없는 쿼리의 매개 변수를 변경할 때마다 변경하지 않는 것이 좋습니다.

그래서 자동 완성은 나에게 여러 도시와 행 집합을 반환하고 그에서하는 나는 등

I 가격 범위 같은 사용자 옵션에 해당하지 않는 그들 중 일부, 거리를 '제거'하고 싶습니다 가능한 한 행 집합을 최대한 길게 유지하고 매번 데이터베이스에 새 행 집합을 직접 요청하는 대신 일부 필터링을 실행하려고합니다.

행 집합에 MySQL 쿼리를 실행하는 방법이 있습니까? 아니면 배열로 변환하여 '수동'필터링을 수행해야합니까?

답변

0

'중첩 된 선택'을 찾고 있다고 생각합니다. Zend_DB에서 당신은이 게시물에를 같이 수행 할 수 있습니다

$q = new Doctrine_RawSql(); 
     $q->addComponent('m', 'Application_Model_Table') 
     ->from('(SELECT * FROM table2 m2 WHERE ... // here is first query 

     ) AS m') // IMPORTANT- name as m ! 
      ->orderBy('m.created ASC') 
      ->limit($limit) 
      ->where(' // connect tables or give 2\'nd where'); 
     return $q->execute(); 
:

프로젝트에서 교리 1.x에서을 가지고있는 경우에 Nested Select using Zend Db

, 당신은이 DQL 쿼리를 수행 할 수 있습니다

나는 이것이 당신이 찾고있는 바란다.