2014-10-22 71 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();