Mysql按左连接日期排序

标签 mysql left-join

我有两个表,用户和 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/

相关文章:

MySQL:自然连接两次

带条件的 PHP MySQL WHERE 子句

mysql - 将数据从 MySQL 中的一列复制到另一列

php - 在 PHP 字符串末尾添加反斜杠

来自 5.7 的 mysql 8 查询回归(有什么问题?)

SQL 独立左连接两个表

php - 循环包含一个变量

SQL: 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中

mysql - 为什么我的 MySQL MATCH() AGAINST() 查询因 LEFT JOIN 数据库中的列而失败?

sql - 如何将一个表中的新记录插入到另一个表中