gpt4 book ai didi

MySQL 选择日期范围内每个日期不存在相关行的行

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

我有一个查询,该查询根据特定日期不存在的相关表中的行从一个表中进行选择。现在,我对每个我感兴趣的日期多次调用此查询。但出于性能原因,我希望对数据库进行一次往返。我想扩展此查询以在日期范围内工作,并返回该范围内的所有行,其中每个日期的另一个表中没有相关行(即范围内每个日期的当前查询结果的 UNION)。结果必须在每行中包含日期本身。我当前的查询是这样的:

   SELECT 
t1.id,
t1.field1,
t1.field2,
'2016-03-17' AS nightof_date,
1 as marker
FROM
t1
LEFT JOIN t2 ON (
(t2.a_date = '2016-03-17')
AND (t2.t1_id=t1.id)
AND (some conditions...))
WHERE
(t2.id is NULL)
AND (some other conditions...)
GROUP BY
t1.field3;

这是单个查询的 fiddle : http://sqlfiddle.com/#!9/553d49/6/0

以下是我想要实现的开始日期 2016-03-17 和结束日期 2016-03-20 的结果: http://sqlfiddle.com/#!9/553d49/6/0

(我想我可以通过编程方式生成一个像这样的怪物联合查询,但我希望有一些更优雅的东西,我可以只使用开始和结束日期)

有没有办法在不使用NUMBERS的情况下做到这一点?或类似的技巧(即我希望不必生成单独的表)?

最佳答案

这对你有帮助吗?

SELECT 
t1.id,
t1.name,
t1.birth,
'2015-01-01 AND 2015-01-03' AS nightof_date
FROM
t1
LEFT JOIN t2 ON (t2.t1_id=t1.id
AND
(t2.birth BETWEEN '2015-01-01' AND '2015-01-03'))
WHERE (t2.id is NULL)
GROUP BY
t1.name;

关于MySQL 选择日期范围内每个日期不存在相关行的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36077737/

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