I have the following sql query, how can I write the query in yii using findAll()
?
I am not using CDbCriteria
and for the time being avoiding i
you can use queryAll with create command.
$query= " 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%'";
$result= Yii::app()->db->createCommand($query)->queryAll();
Can you try this way:
$c = array('join' =>
array(
'user' => array(
'joinType' => 'INNER JOIN',
'on' => 'user.id = t.user_id'
),
'category' => array(
'joinType' => 'INNER JOIN',
'on' => 'category.id = t.category_id'
),
),
'condition' => "t.category_id =1 and t.experience =2 and t.key_skills LIKE '%php%'"
);
$results = SearchEmployee::model()->findAll($c);
$model = JobProfile::model()->with('userrelationname','categoryrelationname')->findAll(array("condition"=>"t.category_id =1 and t.experience =2 and t.key_skills LIKE '%php%'"));
You can find relations names in your JobProfile model
Example for relations
There will be source code in your JobProfile Model File like
public function relations(){
return array(
'user' => array (self::BELONGS_TO, 'User', 'id' ),
)
}
Here is 'user' is relation name...
then in your controller example;
foreach($model as $m){
echo $m['user_id']; // in your job_profile table
echo $m->user->id; // in your user table
}