我希望對以下連接有所幫助。 我有一個表(約2000萬行),其中包括:本身的表格連接 - 性能
MemberId(主鍵)| Id(主鍵)| TransactionDate |餘額
我想在一個查詢中獲得所有客戶的最新餘額。 我知道我可以做這樣的事情(我從我的記憶中寫下來)。但這種方式非常緩慢。
SELECT *
FROM money
WHERE money.Id = (SELECT MAX(Id)
FROM money AS m
WHERE m.MemberId = money.MemberId)
是否還有其他(更快/更聰明)的選項?
可以肯定,主鍵是合成的,第一列是MemberId? – Benoit 2012-01-03 14:12:45
傘有一個很好的答案,但如果你不介意的話,我會非常有興趣瞭解MySQL如何處理'IN'運算符(替換第一個'=')。 – 2012-01-03 14:24:46
@Benoit是的主鍵是複合的,第一列是MemberId(這是一個MyIsam表) – PKK 2012-01-03 14:28:24