2015-07-10 130 views
1

我是蛋糕php的新手。我有两个表我如何从蛋糕php(蛋糕2)中的两个表中选择记录

  1. ce_landing
  2. ce_stat

结构是

ce_stat

id  keyword  click 
1  keyword1  24 
2  keyword2  2 
3  keyword3  6 

ce_landing

id  page_keyword 
1  keyword1,check,keyword3 
2  keyword2,usa,alphanumeric 

我想获取所有记录ce_landing.page_keyword存在于ce_stat.keyword。我在我的蛋糕PHP模型

public $hasMany = array(
     'Stat' => array(
      'className' => 'Stat', 
      'foreignKey' => 'keywor', 
      'dependent' => false, 
      'conditions' => array('Stat.keyword LIKE' => '%Landing.page_keywords%'), 
      'group' => '', 
      'order' => '', 
      'limit' => '', 
      'offset' => '', 
      'exclusive' => '', 
      'finderQuery' => '', 
      'counterQuery' => '' 
     ) 
     ); 

使用此但这会产生像

SQL查询的SQL查询:SELECT StatidStatcustomer_idStataccount, Statcampaign_idStatcampaignStatkeywordStatad_grp_idStatad_grpStatimpressions, StatclicksStatcostStatqualityScore, StatkeywordStateStatdate_fromStatdate_to, Statuser_idStatcreatedStatmodifiedStatkeyworEB_adwordsce_stats AS Stat WHERE Statkeyword LIKE '%Landing.page_keywords%'AND Statkeyword = ( '559f479a-82ac-4e3d-8c24-19b5c0a8011f')

所以它返回由于AND Stat空数据。 keyword =('559f479a-82ac-4e3d-8c24-19b5c0a8011f')条件。

更新

什么,我想根据目前的关键字与总点击次数从ce_landing得到所有的记录。即ce_landing中的记录1。我会得到的结果

id  page_keyword      clicks 
    1  keyword1,check,keyword3  30 
    2  keyword2,usa,alphanumeric  2 
+0

我认为它会需要自定义查询使用'UNION' – insanebits

+0

不可能与蛋糕关系模型? – MKD

+0

联合不工作'“使用的SELECT语句有不同的列数”是错误 – MKD

回答

1

你需要一个SQL语句相当于:

SELECT ce_landing.id, ce_landing.page_keyword, SUM(ce_stat.click) AS total_clicks 
FROM ce_landing 
LEFT JOIN ce_stat 
ON FIND_IN_SET(keyword,page_keyword)>0 
GROUP BY ce_landing.id, ce_landing.page_keyword; 

不容易转化为CakePHP的find方法。只需使用query method即可实施。

+0

完美答案。感谢名单 – MKD