Yii2 innerJoin()

对着背影说爱祢 提交于 2019-12-01 06:05:42

innerJoin() is a method from the Query class.

You can try something like this.

$query = new \yii\db\Query;
$command = $query->innerJoin(
         'Product_has_ProductFeature',
         `Product`.`id` = t.`productId`)
     ->andWhere('t.`productFeatureValueId` = 1')
     ->createCommand();
$queryResult = $command->query();

You can use the below code:

$model = Product::find()
->innerJoinWith('t', 'Product.id = T.productId')
->andWhere(['T.productFeatureValueId' => ''])
->innerJoinWith('t1', 'Product.id = T1.productId')
->andWhere(['T1.productFeatureValueId' => '5'])
->all();
$query = new \yii\db\Query();
$query->from(['u' => 'usr_user'])
    ->select(['u.id','p.first_name','p.last_name'])
    ->innerJoin(['i' => 'pdl_inspector'],'`u`.`id` = `inspector_id`')
    ->innerJoin(['p'=>'usr_profile'],'`p`.`user_id` = `u`.`id`')
    ->all();

Tables vote_results, vote_answers, vote_questions
Relations
1. vote_results > vote_answers (answer_id)
2. vote_answers > vote_questions (question_id)

 $matches = Results::find()
                ->select(['vote_results.id', 'COUNT(vote_results.answer_id) as MatchCount'])
                ->innerJoin('vote_answers', 'vote_results.answer_id = vote_answers.id')
                ->innerJoin('vote_questions', 'vote_answers.question_id = vote_questions.id')
                ->andWhere(['in', 'vote_results.answer_id', 31])
                ->having('COUNT(vote_results.id)>=1')
                ->orderBy('MatchCount DESC')
                ->asArray()
                ->one();
            var_dump($matches['MatchCount']);
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!