代码之家  ›  专栏  ›  技术社区  ›  kiran girase

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

  •  2
  • kiran girase  · 技术社区  · 6 年前

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

    现在我要的是,我要取全名,手机号码,

    上次插入或

    每个用户名的最新记录

    locationSyncDateTime.

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

    事先谢谢。

    每个用户名的最新记录

    位置同步日期时间。

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

    User Table

    User Location

    事先谢谢。

    1 回复  |  直到 6 年前
        1
  •  3
  •   Madhur Bhaiya    6 年前
    • 得到 Maximum 价值 LocationSyncDateTime 对于一个 User_Name 在一个 Derived Table t3 .
    • 将主表联接到此派生表 用户名 最大值为 位置同步日期时间 .

    尝试以下操作:

    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