我有两个表,用户和 session 。每个用户可以有多个 session 。我想获取用户名和他最近一次 session 的日期。但我需要以能够返回按上次 session 日期排序的数组的方式执行此操作。此外,某些用户可能没有 session ,因此左连接不会返回任何日期。
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
显然这行不通,但我想要一些简单的方法。相似的东西?请注意,由于分页,我还需要指定返回哪一组行。这是第 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
关于Mysql按左连接日期排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31955432/