2011-01-19 3 views
0

은 하나 CakePHP의에이 쿼리 문을 찾을 변환하는 데 도움이 수변환 쿼리를 찾아 문

SELECT 
    SUM(ISNULL(tg_prd_value,0)) as total,MAX(tblMarketingArea.mkt_Area_ID) as mkt_Area_ID,MAX(tblMarketingArea.mkt_Area) as mkt_Area 
FROM 
    tblTarget right outer join 
    tblMarketingArea on (tblMarketingArea.mkt_Area_ID = tblTarget.tg_area_id and tblTarget.tg_month = 1 and tblTarget.tg_year = 2011) 
where tblMarketingArea.isDeleted!=1 
GROUP BY 
    tblMarketingArea.mkt_Area_ID order by tblMarketingArea.mkt_Area_ID 

"대상""MarketingArea" 모델을 가지고있다. (필자는 테이블 이름은 알고있다 cakephp 규칙에 따르지 않고이 이름들을 사용해야합니다.) 내가 SQL 서버를 사용하고 있기 때문에 나는 케이크 convension에 따라 테이블에 대한 동의어을 만들어

모델 MarketingArea 내가이 바인딩

$this->bindModel(array(
     'hasMany' => array(
      'Target' => array(
       'foreignKey' => 'tg_area_id', 
       'conditions' => array(
        'tg_month' => 1, 
        'tg_year' => 2011 
        ) 
           ) 
         ) 
        ) 
       ); 
시도

class MarketingArea extends AppModel{ 
    var $name='MarketingArea'; 
    var $primaryKey='mkt_Area_ID'; 
} 

(marketing_area.php)

하지만 여전히 문제가 있습니다 SUM(tg_prd_value)

감사합니다.

답변

3

find 메서드를 사용해야하는 특별한 이유가없는 한 모델 메서드를 만들고 query()을 사용하여 SQL 문을 실행하기 만하면됩니다. 월과 연도가 매개 변수이면 SQL 주입 공격을 피하기 위해 정수인지 확인하십시오.

관련 문제