gpt4 book ai didi

早于 MAX(date) 的 Mysql 数据条目

转载 作者:行者123 更新时间:2023-11-29 05:40:51 26 4
gpt4 key购买 nike

我有两张表,一张有设备,一张有相应的服务时间。每个设备可以有多个服务。我正在寻找上次服务时间超过 3 个月的设备。我试过了,当然没用:

SELECT devices.id, 
devices.name,
services.servicetime
FROM devices
LEFT JOIN services
ON services.device_id = devices.id
WHERE MAX(services.servicetime) < DATE_SUB(NOW(), INTERVAL 3 MONTH);

我怎样才能得到想要的结果?

最佳答案

GROUP BY devices.id 添加到您的查询中,并将条件更改为 HAVING 子句(在分组后评估)。您需要 MAX(services.servicetime) per device,其中当前结果集包含每项服务一行。

SELECT
devices.id,
devices.name,
MAX(services.servicetime)
FROM
devices
LEFT OUTER JOIN
services
ON
services.device_id = devices.id
GROUP BY
devices.id
HAVING
MAX(services.servicetime) < CURRENT_TIMESTAMP - INTERVAL 3 MONTH

如果您想包括从未服务过的设备,请将 OR MAX(services.servicetime) IS NULL 添加到末尾。

关于早于 MAX(date) 的 Mysql 数据条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6923744/

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