gpt4 book ai didi

mysql - 将另一个表中的日期添加到查询中

转载 作者:行者123 更新时间:2023-11-29 15:35:58 25 4
gpt4 key购买 nike

我的表是打印机列表。另一个表是服务日期列表(过去和将来)。

SELECT p.*, s.date AS service_date
FROM printer p
LEFT JOIN services s
ON s.printer = p.id
WHERE
s.date > NOW()
ORDER BY
service_date ASC

给了我多行。我只想要列表中的下一个即将到来的日期。这意味着下一次服务日期。

最佳答案

您可以添加另一个 JOIN 条件,该条件使用相关子查询来确保您连接正确的记录(即具有 future 日期的第一条记录):

SELECT p.*, s.date AS service_date 
FROM printer p
LEFT JOIN services s
ON s.printer = p.id
AND s.date > NOW()
AND NOT EXISTS (
SELECT 1 FROM services s1
WHERE s1.printer = p.id
AND s1.date > NOW()
AND s1.date < s.date
)
ORDER BY service_date ASC

注意:由于您使用的是 LEFT JOIN,因此连接表上的所有条件都必须位于 JOINON 子句中,而不是在 WHERE 子句中(否则,您实际上是在执行 INNER JOIN)。我解决了这个问题。

关于mysql - 将另一个表中的日期添加到查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58230458/

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