我有以下sql查询,如何使用yii编写查询findAll()?
findAll()
我没有使用CDbCriteria,暂时正在避免使用它。
CDbCriteria
使用三个表,用户,类别和job_profile。
SELECT * FROM job_profile INNER JOIN user ON user.id = job_profile.user_id INNER JOIN category ON category.id = job_profile.category_id WHERE category_id = 1 AND experience = 2 AND key_skills LIKE '%php%'
我已经编写了以下查询,但是我不知道如何包括join:
$results = SearchEmployee::model()->findAll("category_id=:category AND key_skills like :skill AND experience=:experience", array( 'category'=>$category, 'skill'=>'%'.$skills.'%', 'experience'=>$experience ));
$model = JobProfile::model()->with(‘userrelationname’,’categoryrelationname’)->findAll(array(“condition”=>”t.category_id =1 and t.experience =2 and t.key_skills LIKE ‘%php%’“));
您可以在JobProfile模型中找到关系名称
关系示例
JobProfile模型文件中将包含源代码,例如
public function relations(){ return array( 'user' => array (self::BELONGS_TO, 'User', 'id' ), ) }
这是“用户”是关系名称…
然后在您的控制器示例中;
foreach($model as $m){ echo $m['user_id']; // in your job_profile table echo $m->user->id; // in your user table }