下面是我的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个结果。
我尝试做(从event ORDER BY DESC Limit3中选择E.Result)来代替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)
试试这个。