mysql - 为 MySQL 中的列选择最近的 3 条记录
问题描述
这是我的 SQL 查询:
SELECT s.name,
f.message,
e.timestamp,
e.result,
o.details
FROM event e
LEFT JOIN feed f ON e.id=f.id
LEFT JOIN oper o ON o.id=e.id
LEFT JOIN system s ON o.id=e.id
WHERE (e.date = ’15-06-2020’)
AND e.oper_id IN (SELECT id from oper
where state = ‘READY1’ or state = ‘READY2’ or state = ‘READY2’
group by state
order by state)
现在我的 e.results 表中有 3 个以上的结果,但是我只想获取最近的 3 个结果(所以按时间戳排序)。所以我从 SQL 得到的最终结果应该只有最近的 3 个结果。
我尝试做(从事件 ORDER BY DESC LIMIT 3 中选择 e.result)代替 e.result,但它不起作用。
知道我怎么能做到这一点。我正在查询 MySQL。
解决方案
首先按降序排列,并在 order by 子句之后在 sql 中设置限制为 3。更改子查询中的列。
SELECT s.name,
f.message,
e.timestamp,
e.result,
o.details FROM event e
LEFT JOIN feed f ON e.id=f.id
LEFT JOIN oper o ON o.id=e.id
LEFT JOIN system s ON o.id=e.id
WHERE (e.date = ’15-06-2020’) AND
e.oper_id IN (SELECT id,state from oper
where state = ‘READY1’ or state = ‘READY2’
group by state order by state desc LIMIT 3)
尝试这个。
推荐阅读
- visual-studio - .NET Core Publish Exe 的修改日期不正确?
- flutter - 我的颤振/飞镖代码给了我一个红色的 NosuchmethodError:..The method 'toDouble'
- docker - Docker-compose 命令不会覆盖 Dockerfile CMD
- python - 如何解决我的问题,以减少我的 excel 数据与 python 中的相关性?TypeError: unsupported operand type(s) for /: 'str' and 'int'
- c# - 如何在没有 try&catch 的情况下获取目录是否可访问?
- javascript - 自由空间上的自动结构 div 框
- mysql - 添加一列可被另一列的 10 整除
- cocoa - Cocoa:连接鼠标时,调整宽度常量会导致 AutoLayout 问题
- javascript - LinearGradient 不适用于 Angular 的 chartJs 画布
- html - 其他页面看不到布局页面