SQLの観点から見たクエリの例では、select句内で「相関サブクエリ」を使用していますが、これはクエリを形成する非常に非効率的な方法であることがよくあります。
SELECT ParentTable.*, (SELECT MAX(ChildTable.NumberField)
FROM ChildTable
WHERE ChildTable.FK_Id = ParentTable.Id)
FROM ParentTable
一見すると複雑で効率が悪いように見えるかもしれませんが、一般的には、select句で「相関サブクエリ」を避け、代わりに「派生テーブル」を使用して次のように置き換える方がパフォーマンスに優れています。
SELECT ParentTable.*,c.MxNum
FROM ParentTable
LEFT JOIN (
SELECT ChildTable.FK_Id, MAX(ChildTable.NumberField) as MxNum FROM ChildTable
GROUP BY ChildTable.FK_Id
) AS c ON c.FK_Id = ParentTable.Id
select句を使用した相関サブクエリはNULLを返す可能性があることに注意してください。これにより、派生テーブルで置き換える場合、同等の結合タイプはLEFT OUTER JOIN(または単にLEFT JOIN)になります。これにより、NULLの結果も許可されます。ただし、列にNULLが必要ない場合は、代わりに、より効率的なINNERJOINを使用してください。
Yii2構文がわからないことを事前に謝罪しますが、問題の解決に役立つ可能性のある効果的な代替アプローチを知っておくことが適切であるようです。