2014-10-22 75 views
0

我想根據某個表中的某些值從表中選擇一些行。我有這樣的代碼:根據子表中的字段值從DB中選擇行

$row = Yii::app()->cre->createCommand() 
    ->from('test') 
    ->queryAll(); 

什麼where()子句我應該寫到這? 說明: 我有表test,和相關test2其中我有test_id字段和compare_id字段。我需要從test得到所有行compare_id = 1

+0

嘗試加入另一個表:http://www.yiiframework.com/doc/api/1.1/CDbCommand#join()-detail – Dinistro 2014-10-22 12:02:37

+0

這將工作,如果表不相關造成外鍵? – nowiko 2014-10-22 12:06:04

+0

你想在哪裏比較什麼?你可以添加一個例子嗎? – Dinistro 2014-10-22 12:09:11

回答

2

我覺得應該有一個連接工作:

$row = Yii::app()->cre->createCommand() 
    ->from('test') 
    ->join('test2','test2.compare_id = test.test_id') 
    ->queryAll(); 
0

您也可以嘗試這樣的替代方式......

$query = "SELECT t1.* FROM test AS t1 JOIN test2 AS t2 ON 
      t1.test_id = t2.compare_id 
      WHERE t2.compare_id = $compareId"; 

$row = Yii::app()->cre->createCommand($query)->queryAll(); //or Yii::app()->db->createCommand($query)->queryAll(); 
相關問題