任何人都可以帮我将此查询转换为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 server ,我根据蛋糕传播为表创建了同义词
模型MarketingArea(marketing_area.php)
class MarketingArea extends AppModel{
var $name='MarketingArea';
var $primaryKey='mkt_Area_ID';
}
我试过这个绑定
$this->bindModel(array(
'hasMany' => array(
'Target' => array(
'foreignKey' => 'tg_area_id',
'conditions' => array(
'tg_month' => 1,
'tg_year' => 2011
)
)
)
)
);
但我仍面临SUM(tg_prd_value)
感谢先生。
答案 0 :(得分:3)
除非使用find
方法有一些特殊原因,否则我只需创建一个模型方法并使用query()
来执行SQL语句。如果月份和年份是参数,请确保它们是整数以避免SQL注入攻击。