2015-07-10 128 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