mysql - mysql select 查询中相同行的排序依据和分组依据

标签 mysql

我有一个具有这种结构的表格

id |from_id |to_id |date

1  |1       |3     |25
2  |1       |3     |24
3  |2       |3     |28
4  |2       |3     |20
5  |2       |3     |30

我想检索所有具有最大日期的 from_id(与具有最大日期的 id 不同)

即,

id |from_id |to_id |date

1  |1       |3     |25
5  |2       |3     |30

我使用过这个查询

`select * from table where to_id=3 group by from_id order by date desc`

但是我正在获取日期值最小的 from_id

最佳答案

试试这个 -

SELECT tablename.*
FROM (SELECT from_id, MAX(date) dat
      FROM tablename 
      GROUP BY from_id) innerquery
  JOIN tablename
    ON  innerquery.from_id = from_id
    AND innerquery.dat = date

关于mysql - mysql select 查询中相同行的排序依据和分组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10752849/

相关文章:

php - bool PHP MySQL 参数错误

php - 该网页有一个重定向循环 php cookies

php - PHP 中类似 Disqus 的评论线程逻辑

PHP/MYSQL 查询优化

mysql - 计算每个唯一元素在表格中出现的次数

mysql - SQL查询一行中同一列的多个值

MYSQL 对每个字母使用多个 CASE REGEXP 作为表行,并且还允许对每个所述 REGEXPied 字母进行重复/重复计算

mysql - 数据库缺失错误

sql - MySQL - 限制连接中的行数?

mysql - 将 24 小时格式时间转换为十进制数