我正在按照书签教程的说明操作,我的其中一个查询有问题。
我已经从我的数据库中烘焙了所有模型(比如在教程中),现在我想准备自定义查找程序。
我有两个表格学术教师和评估
CREATE TABLE evaluations (
ID int(10) NOT NULL AUTO_INCREMENT,
academic_teacher_ID int(10) NOT NULL,
framework_ID int(10) NOT NULL,
protocol_ID int(10) NOT NULL,
final_note DOUBLE,
room varchar(255),
PRIMARY KEY (ID)) ;
CREATE TABLE academic_teachers (
ID int(10) NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
surname varchar(255) NOT NULL,
national_identification_number int(10) NOT NULL,
occupation varchar(4),
degree varchar(255),
department varchar(255),
PRIMARY KEY (ID)) ;
我想找到老师,他们在上一次评估时得到了低调。
public function findLowNotes(Query $query, array $options)
{
return $this->find()
->distinct(['AcademicTeachers.id'])
->matching('Evaluations', function ($q) {
return $q->where(['Evaluations.final_note' < 3]);
});
但它会找到所有有过任何不良记录的老师。应该怎么样?我可以使用其中一种检索我找到的最后一个ID的方法吗?或者有一种更聪明的方式肯定会起作用?我很困惑如何将它们组合在一起。
并且 - 是否有可能在这里加入final_note,所以我可以将它与教师的数据一起分页?
您诚挚的, Milven
答案 0 :(得分:0)
这不对。
return $q->where(['Evaluations.final_note' < 3]);
应该是。
return $q->where(['Evaluations.final_note <' => 3]);