我想知道人的最大形成水平,並且一個人可以有許多編隊條目。如何通過子查詢改進/簡化查詢?
表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個subquerys但它是不可能創造一個高效的視圖。
查詢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
爲什麼不包括'1和3'? – 2013-04-24 08:45:42
你能解釋一下你的問題嗎? – 2013-04-24 08:51:47
*我用2個subquerys *進行了查詢。然後首先顯示查詢。同時解釋你的預期結果。提出問題後請不要離開。 – hims056 2013-04-24 08:58:02