gpt4 book ai didi

mysql - 将查询结果传递给子查询

转载 作者:太空宇宙 更新时间:2023-11-03 10:58:30 27 4
gpt4 key购买 nike

SELECT alert,  
(select created_at from alerts
WHERE alert = @ALERT ORDER BY created_at desc LIMIT 1)
AS latest FROM alerts GROUP BY alert;

我在上面的查询中遇到问题,我想将每个警报传递到子查询中,以便我有一个名为 latest 的列,它显示每组警报的最新警报。我应该怎么做?

最佳答案

这称为相关子查询。要使其工作,您需要表别名:

SELECT a1.alert,  
(select a2.created_at
from alerts a2
WHERE a2.alert = a1.alert
ORDER BY a2.created_at desc
LIMIT 1
) AS latest
FROM alerts a1
GROUP BY a1.alert;

表别名是一个需要养成的好习惯,因为它们通常会使 SQL 更具可读性。将表别名与列引用一起使用也是一个好主意,这样您就可以轻松知道列的来源。

编辑:

如果你真的想要最新的,你可以通过简单地做:

select alert, max(created_at)
from alerts
group by alert;

关于mysql - 将查询结果传递给子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18135301/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com