为MySQL中的一列选择最近3条记录
以下是我的SQL查询:为MySQL中的一列选择最近3条记录,mysql,sorting,subquery,limit,Mysql,Sorting,Subquery,Limit,以下是我的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_i
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个结果
我试着用DESC LIMIT 3从事件顺序中选择e.result来代替e.result,但它不起作用
你知道我怎样才能做到这一点吗。我正在查询MySQL。首先按降序排序,并在ORDERBY子句后面的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)
尝试此操作。如果选择的是id,但按状态分组,则子查询无效。示例数据和所需结果将有助于澄清您的问题。请不要使用Word进行格式设置,并使用日期数据类型存储日期解决上述问题后,请参阅: