如何在yii2搜索模型中实现sql查询?

如何在yii2搜索模型中实现sql查询?,yii2,yii2-advanced-app,Yii2,Yii2 Advanced App,我有以下疑问: SELECT hs.*FROM hire_screening hs INNER JOIN (SELECT resume_id,MAX(created_date) AS MaxDateTime FROM hire_screening GROUP BY resume_id) hire_screening ON hs.resume_id = hire_screening.resume_id AND hs.created

我有以下疑问:

      SELECT hs.*FROM hire_screening hs 
      INNER JOIN (SELECT resume_id,MAX(created_date) AS MaxDateTime 
      FROM hire_screening GROUP BY resume_id) hire_screening 
      ON hs.resume_id = hire_screening.resume_id 
      AND hs.created_date = hire_screening.MaxDateTime
我试过这个:

   $query = HireScreening::find()
           ->select(["hs.resume_id","MAX(hs.created_date) AS MaxDateTime"])
           ->innerJoin('hire_screening as hs','hs.resume_id = hire_screening.resume_id')

          ->where(['hire_screening.created_date' => 'MaxDateTime'])
          ->orderBy(['(hs.created_date)' => SORT_DESC])
          ->groupBy(['hs.resume_id']);
当我使用group by时,结果按表中存储的顺序显示每个“resume_id”的第一个值。我只需要根据创建日期提供最新的不同简历id。
如何在yii2搜索模型中实现此查询?请提供帮助。

如果要执行原始sql查询,则可以使用 createCommand函数。但它将返回数组,所以在网格中您应该使用数组数据提供程序

$array= Yii::$app->db->createCommand("
      SELECT hs.*FROM hire_screening hs 
      INNER JOIN (SELECT resume_id,MAX(created_date) AS MaxDateTime 
      FROM hire_screening GROUP BY resume_id) hire_screening 
      ON hs.resume_id = hire_screening.resume_id 
      AND hs.created_date = hire_screening.MaxDateTime")->queryAll();

请使用您在此时尝试过的代码更新问题。请参阅文章以改进您的问题。请记住,堆栈溢出不是您的个人联机查询转换器。对不起。我是Yii2的初学者。所以请原谅任何错误。问题已更新。