如何在yii2中使用查询数据进行另一个sql查询

时间:2017-10-20 06:07:20

标签: php mysql yii2 yii2-advanced-app yii2-model

我在这里有一个问题:

  public function SearchExactJob($id) {
      $connect = \Yii::$app->db;

      $query = $connect->createCommand('
           SELECT job_name FROM job_questions WHERE job_id=:id')
           ->bindValue(':id':$id)
           ->queryAll();

}

我想将job_name用于另一个查询: PS:我刚刚在论文中写下这个,以防我能够找到如何获取此数据

  $anotherquery = $connect->createCommand(
                  'SELECT * FROM company_questions
                   WHERE company_question = [the job_name I want to get from the `$query`])

此外,如果我将成功获得$anotherquery工作,我想获取数据并将其传递给分配给它的视图。

但是,我求助,因为我刚刚使用了Yii2。请帮我。

2 个答案:

答案 0 :(得分:0)

获取职位名称

public function SearchExactJob($id) {
  $connect = \Yii::$app->db;

  $query = $connect->createCommand('
       SELECT job_name FROM job_questions WHERE job_id=:id')
       ->bindValue(':id':$id)
       ->asArray()
       ->queryAll();
}

上面的代码将返回二维数组。将二维数组转换为一维数组

 $jobs = array_map('current',$query);

最后,您可以使用 where in 子句搜索作业。

$anotherquery = $connect->createCommand(
              'SELECT * FROM company_questions
               WHERE IN $jobs)

我强烈建议您在查询数据时使用活动记录,减少语法错误并且更易于阅读。

答案 1 :(得分:0)

我已经解决了这个问题。

     $query=$connect->createCommand('
       SELECT job_name FROM job_questions WHERE job_id=:id')
       ->bindValue(':id':$id)
       ->queryOne(\PDO::FETCH_OBJ);

在变量上添加数据:ex。 $job_name

$job_name = $query->job_name;