Mysql 按左侧加入日期排序
Mysql order by left join date
我有两个表,用户和会话。每个用户可以有多个会话。我想获取用户名和他最近一次会话的日期。但我需要以能够 return 按上次会话日期排序的数组的方式执行此操作。此外,一些用户可能没有会话,因此左连接将 return 没有日期。
SELECT u.name, max(s.sdate) FROM users u
LEFT JOIN sessions s ON s.uid=u.id
ORDER BY s.sdate
LIMIT 25,25
显然这行不通,但我想要一些简单的方法。相似的东西?请注意,由于分页,我还需要指定 return 的哪一组行。这是第 2 页。我确实看到过类似的帖子,但它们对我的使用来说过于复杂。
为了便于理解,我对其进行了简化。
我相信在您的情况下,您只需按用户对结果进行分组。
尝试
SELECT u.name, max(s.sdate) AS dt FROM users u
LEFT JOIN sessions s ON s.uid=u.id
GROUP BY u.id
ORDER BY dt
LIMIT 25,25
我有两个表,用户和会话。每个用户可以有多个会话。我想获取用户名和他最近一次会话的日期。但我需要以能够 return 按上次会话日期排序的数组的方式执行此操作。此外,一些用户可能没有会话,因此左连接将 return 没有日期。
SELECT u.name, max(s.sdate) FROM users u
LEFT JOIN sessions s ON s.uid=u.id
ORDER BY s.sdate
LIMIT 25,25
显然这行不通,但我想要一些简单的方法。相似的东西?请注意,由于分页,我还需要指定 return 的哪一组行。这是第 2 页。我确实看到过类似的帖子,但它们对我的使用来说过于复杂。
为了便于理解,我对其进行了简化。
我相信在您的情况下,您只需按用户对结果进行分组。 尝试
SELECT u.name, max(s.sdate) AS dt FROM users u
LEFT JOIN sessions s ON s.uid=u.id
GROUP BY u.id
ORDER BY dt
LIMIT 25,25