2011-12-14 2 views
0

내 문제는 모든 테이블이 관련되어 있고 내가 원하는 것을 얻기 위해 SQL 쿼리를 만들 수있는 5 개의 다른 테이블에서 데이터를 가져 오려고합니다. 여기있어.cakephp 여러 테이블로 모두 찾기

SELECT accounts.account_number, trailers.id, members.first_name, balances.balance, loans.loan_description, delinquent_loans.days_delinquent, delinquent_loans.amount_delinquent, delinquent_loans.next_contact, delinquent_loans.last_contact 
FROM accounts, trailers, members, balances, accounts_trailers, loans, delinquent_loans 
WHERE delinquent_loans.loan_id = loans.id 
AND loans.accounts_trailer_id = accounts_trailers.id 
AND accounts_trailers.account_id = accounts.id 
AND accounts_trailers.trailer_id = trailers.id 
AND accounts.member_id = members.id 
AND balances.accounts_trailer_id = accounts_trailers.id 
AND members.first_name 
REGEXP '^[a-l]' 
ORDER BY delinquent_loans.days_delinquent DESC 

내가 이해할 수없는 것은 cakePHP에서이 쿼리를 올바르게 수행하는 방법입니다. 나는 단지 쿼리 함수를 사용하여 이전 쿼리를 붙여 넣을 수 있다고 확신하지만 올바른 방법으로이 작업을 수행하려고합니다.

public function listAL(){ 
    $this->recursive = -1; 
    $conditions = array('`DelinquentLoan`.`loan_id` = `Loan`.`id`', 
           '`Loan`.`accounts_trailer_id` = `AccountsTrailer`.`id`', 
           '`AccountsTrailer`.`account_id` = `Account`.`id`', 
           '`AccountsTrailer`.`trailer_id` = `Trailer`.`id`', 
           '`Account`.`member_id` = `Member`.`id`', 
           '`Balance`.`accounts_trailer_id` = `AccountsTrailer`.`id`', 
           '`Member`.`first_name` regexp \'^[a-l]\''); 
    $fields = array('`Account`.`account_number`, 
          `Trailer`.`id`, `Member`.`first_name`, 
          `Balance`.`balance`, 
          `Loan`.`loan_description`, 
          `Delinquent_loan`.`days_delinquent`, 
          `Delinquent_loan`.`amount_delinquent`, 
          `Delinquent_loan`.`next_contact`, 
          `Delinquent_loan`.`last_contact`'); 
    return $this->find('all', array('fields'=> $fields, 
               'order'=>array('`DelinquentLoan`.`days_delinquent` desc'), 
               'conditions'=> $conditions)); 
} 

감사의 말을 전합니다. 나는 다른 사이트와 포럼을 보았지만 아무 소용이 없다. 고맙습니다.

답변

0

조금 늦게, 그러나 나는 이것이 당신이 찾고있는 무슨 생각 : 모델 사이의 연관성이 잘하는 경우 요리 책 Saving Your Data

0

에서 발견

Model::saveAssociated(array $data = null, array $options = array()) 

, 내가 볼 수 없습니다 간단한 find ('all', ...)를 사용하여 문제를 해결할 수 있습니다. 아마도 모델을 사용하여 수행하려는 작업과 모델 간의 연관 관계를보다 잘 지정해야합니다.

아마도 컨테이너 동작이 도움이 될 수 있습니다. '찾기'를 수행 할 때 정보를 잘라내어 필터링하기위한 것입니다.

http://book.cakephp.org/2.0/en/core-libraries/behaviors/containable.html

관련 문제