gpt4 book ai didi

mysql - 在 View 中添加列 - 使用 MySQL Below v8 最后匹配条件

转载 作者:行者123 更新时间:2023-12-01 13:13:05 24 4
gpt4 key购买 nike

我正在尝试选择与条件匹配的最后一个元素的列值,并使用 MySQL 将其添加到 View 中。

考虑我有以下内容

表 1:

id    created_at    value
1 2019-03-18 24
2 2019-03-19 50
3 2016-03-20 100
4 2016-03-21 87
5 2016-03-22 105
6 2016-03-23 109
7 2016-03-24 100
8 2016-03-25 90
9 2016-03-26 104
10 2016-03-27 108
11 2016-03-28 80

表 2:

id    created_at    value
1 2019-03-18 18
2 2016-03-21 1024
3 2016-03-27 554

我一直在谷歌上搜索并尝试不同的查询,但现在都没有成功...

我正在尝试在 View 上添加自定义列。此列是 table2 中的最后一个“值”字段,其中日期小于或等于 table1 中的 created_at。

输出 View 应该是这样的:

id    created_at    value    output
1 2019-03-18 24 18
2 2019-03-19 50 18
3 2016-03-20 100 18
4 2016-03-21 87 1024
5 2016-03-22 105 1024
6 2016-03-23 109 1024
7 2016-03-24 100 1024
8 2016-03-25 90 1024
9 2016-03-26 104 1024
9 2016-03-27 108 554
9 2016-03-28 80 554

最佳答案

通常使用相关子查询来解决这个问题:

select t1.*,
(select t2.value
from t2
where t2.created_at <= t1.created_at
order by t2.created_at desc
limit 1
) as output
from t1;

对于大量数据,这不会很有效,尽管 t2(created_at, value) 上的索引可能会有所帮助。

在大量数据上优化这样的查询是很棘手的。如果这是问题所在,请提出一个问题,并非常清楚数据大小和您使用的 MySQL 版本。

关于mysql - 在 View 中添加列 - 使用 MySQL Below v8 最后匹配条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58800293/

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