2017-05-12 37 views
0

这是我的数据库架构Yii2 - 在相关表中检索基于计数模型

Db's schema

,你可以看到基于该架构空缺可以在一个或多个院系出现的一部分。我想检索空缺职位:

  1. 只出现在一个学院和该学院只。
  2. 出现在一个以上的学院。

通过这种方式,我可以向各自的教职员管理员显示职位空缺(空缺职位出现在多个职位上的例外情况将显示给特殊的管理员)。

我试过使用Vacancy::find()->where()子句,但似乎where()不把COUNT()作为参数。

+0

你想要什么?你能写出sql查询吗?我会帮助yii2 –

+0

@知识....我也尝试过同样的事情。我也无法在SQL查询中写入它。 – AceVez

+0

你能展示你的欲望结果吗? –

回答

1

用于过滤的聚合结果在查询中,你应该使用

Vacancy::find() 
    ->leftJoin('vacancy.id = facultyvacancy.vacancy_id') 
    ->having('count(*) = 1')->groupBy('your_column_for_grouping') 
+0

对不起。我现在无法访问我的电脑。所以我会在有机会的时候试试这个。顺便说一句,那个查询怎么知道它会计算'FacultyVacancy'的数据呢? – AceVez

+0

你可以使用加入..答案更新。 – scaisEdge