フォーメーション レベルの最大値を知りたいのですが、1 人のフォーメーション エントリをいくつも持つことができます。
テーブルt_formation
idFormation | fkPerson | fkLevel | place
------------------------------------------------
1 | 1 | 2 | Oxford
2 | 2 | 1 | PlaySchool
3 | 1 | 3 | Trinity High
4 | 1 | 1 | My School
5 | 2 | 3 | My High
テーブルa_level
idLevel | orderLevel | formation
-------------------------------------
1 | 1 | School
2 | 3 | University
3 | 2 | High school
私が取得する必要があるのは、次のクエリまたは目的のクエリ結果です (各人のフォーメーションの最大注文レベルと、その最大フォーメーションを研究した場所)
fkPerson | maxOrderLevel | formation | place
----------------------------------------------------
1 | 2 | Univertity | Oxford
2 | 3 | High school | My High
そのために、2 つのサブクエリを含むクエリを作成しましたが、効率的なビューを作成することはできませんでした。
場所を指定せずにSQL をクエリすると、各人の最大フォーメーションが取得されます
select fkPerson, a_level.orderLevel, a_level.formation
from (
select fkPerson, max(a_level.orderlevel) as ordermax
from t_formation left join a_level on t_formation.fkLevel = a_level.idLevel
group by fkPerson
) as form left join a_level on form.ordermax = a_level.orderlevel