我有兩個表(成員和活動),我試圖查詢與每個成員的最新活動的成員。我有兩個查詢(一個獲取成員,第二個獲得max(id)和group(by member))以及一些合併數據的代碼。我確定它可以用一個查詢來完成,但我無法完成它。有任何想法嗎?在連接表上使用MAX&GROUP BY的MySQL LEFT JOIN?
成員表
id, name
1, Shawn
2, bob
3, tom
活動表
id, member_id, code, timestamp, description
1, 1, 123, 15000, baked a cake
2, 1, 456, 20000, ate dinner
3, 2, 789, 21000, drove home
4, 1, 012, 22000, ate dessert
期望的結果:
id, name, activity_code, activity_timestamp, activity_description
1, shawn, 012, 22000, ate dessert
2, bob, 789, 21000, drove home
3, tom, null, null, null
這似乎是我的成員(湯姆,id = 3)從未登錄任何activities.I嘗試改變內部聯接到左聯接。 我想第二個WHERE語句,我的時間戳不保證是唯一的,但ID是一個獨特的自動遞增字段。 –
@ShawnMcBride請參閱修改後的答案。 – Tomalak
我個人不喜歡條件中的嵌套查詢。如果你加入只有MAX時間戳的查詢,這將是更加優化的解決方案,比如下面的答案 – dzona