我能够找到子查询构建的简单示例,但是当我需要包含WHERE条件时,我无法找到解决方案。我试着模拟以下陈述..。
SELECT ParentTable.*, (SELECT MAX(ChildTable.NumberField)
FROM ChildTable
WHERE ChildTable.FK_Id = ParentTable.Id)
FROM ParentTable我想我需要的是.
$query = ParentClass::find()
->addSelect(
ChildClass::find()
->where('childTable.fk_id=parentTable.id')
->max('childTable.field1')
);但是它给了我一个错误:列未找到:'where子句‘中的1054个未知列'parentTable.id’
编辑:包括实际的类/表名称..。
$endQuery = UnitSchedule::find()
->where('cm_courseschedule.id=cm_unitschedule.csch_id')
->max('cm_unitschedule.slot');
$query = CourseSchedule::find();
$query->addSelect($endQuery);发布于 2015-10-18 22:44:14
尝试一下,因为它对我来说很好,我也遇到过类似的情况,我的表名是event和area_interest。
$query = new Query();
$subquery = new Query();
$subquery ->select(['area_intrest.interest'])
->from('area_intrest' )
->where('area_intrest.id = event.interest_id');
$query ->select(['event.title',$query3])
->from('event');
$command = $query->createCommand();
$data = $command->queryAll();在您的条件下,您甚至可以在引号中的子查询中使用max,它将很好地工作。
https://stackoverflow.com/questions/33201458
复制相似问题