0
我有一個名爲ae_types
的表。它包含三個字段是相關的,我的問題:如何根據同一表中另一個字段的最大值獲取字段ID
aetId This is Auto Increment and is the Primary Key
aetProposalType Text field 5 characters long
aetDaysToWait Byte data type
aetProposalType
和aetDaysToWait
是在一個獨特的密鑰,這樣我保證永遠不會有兩個aetProposalType
s的相同aetDaysToWait
。
我在尋找的結果是獲得的字段的最大aetDaysToWait
的字段的aetId
。
下面是我已經想出來實現這個的查詢,但在我看來,它可能是不必要的複雜,並不是很漂亮。
SELECT ae_types.aetId AS lastEmailId, ae_types.aetProposalType
FROM ae_types INNER JOIN
(SELECT ae_types.aetProposalType, Max(ae_types.aetDaysToWait) AS MaxOfaetDaysToWait
FROM ae_types GROUP BY ae_types.aetProposalType) AS ae_maxDaysToWaitByProposalType
ON (ae_types.aetDaysToWait = ae_maxDaysToWaitByProposalType.MaxOfaetDaysToWait)
AND (ae_types.aetProposalType = ae_maxDaysToWaitByProposalType.aetProposalType);
什麼是一些替代解決方案,爲什麼他們會更好?
PS如果您有任何問題,請詢問,我會很樂意嘗試提供答案。
由於您詢問「替代解決方案」......每當您將自己綁在椒鹽捲餅結上時,您必須重新評估。你試圖執行什麼業務規則?很少有充分的理由想知道有關自動增量ID的任何信息。 – Tim 2010-12-17 20:08:53
'ae_types'表中的每條記錄表示一個事件類型。這些事件按'aetDaysToWait'字段排序,並按'aetProposalType'字段分組。我需要找到每種類型的最後一個事件的ID。然後檢查當前事件(來自其他表格的數據)是否是最終事件,並將其標記爲如果是。 – Icode4food 2010-12-17 22:12:17