MYsql仅为每条记录选择列上具有最大值的行

时间:2018-10-03 09:09:10

标签: mysql join

我在MySql中有用户位置和用户表。

现在我想要的是,我想获取Full_Name,Mobile_Number和

最后一次插入的纬度,经度,LocationSyncDateTime或

根据

针对每个用户名的最新记录

LocationSyncDateTime。

下面我附上了我的桌子的屏幕截图

User Table

User Location

谢谢。

1 个答案:

答案 0 :(得分:3)

  • Maximum LocationSyncDateTime中的User_Name获取t3的{​​{3}}值。
  • User_Name上将主表加入此派生表,并在LocationSyncDateTime上加入最大值。

尝试以下操作:

SELECT u.Full_Name, 
       u.Mobile_Number, 
       l.Latitude, 
       l.Longitude, 
       l.LocationSyncDateTime 
FROM user AS u 
JOIN location AS l ON l.User_Name = u.User_Name 
JOIN (SELECT l2.User_Name, 
             MAX(l2.LocationSyncDateTime) AS LocationSyncDateTime 
      FROM location AS l2 
      GROUP BY l2.User_Name
     ) AS t3 ON t3.User_Name = l.User_Name 
                AND t3.LocationSyncDateTime = l.LocationSyncDateTime