gpt4 book ai didi

mysql - 如何在 SQL 中连接两个带有 id 和最近的下一个日期的表?

转载 作者:行者123 更新时间:2023-11-29 15:32:59 33 4
gpt4 key购买 nike

假设我有两张 table

表A:

ID    Date1      Value  
A 12/12/2019 0.75
B 01/01/2020 0.2
C 02/02/2020 0.6
D 03/03/2020 0.4
E 04/04/2020 0.8
F 05/05/2020 0.9

和表 B:

ID2 Date2   Value2
A 18/12/2019 0.9
B 06/02/2020 0.6
C 08/03/2020 0.5
A 04/04/2020 0.8
B 06/07/2020 0.7
E 07/08/2020 0.5

我想通过 ID 连接它们,但希望日期对齐,以便表 1 的记录与相同的 ID 和最近的 future 日期(与 ID 关联)链接。

我如何在 SQL 中以这种方式加入它们?

我希望它会产生这样的结果:

// ID1  DATE1     VALUE1    ID2 DaTE2   VALUE 2
// A 12/12/2019 0.75 A 18/12/2019 0.9
// B 01/01/2020 0.2 B 06/02/2020 0.6
// C 02/02/2020 0.6 C 08/03/2020 0.5
// D 03/03/2020 0.4 NULL NULL NULL
// E 04/04/2020 0.8 E 07/08/2020 0.5
// F 05/05/2020 0.9 NULL NULL NULL

最佳答案

像这样的东西会起作用:

select *
from A inner join B on (
A.ID1 = B.ID2 and B.Date2 = (
select min(sub.Date2) from B sub where sub.ID2 = A.ID1 and sub.Date2 > A.Date1)
)
)

基本上,对于 A 中的每一行,找到 B 中 ID 相同且日期是 future 所有匹配日期中最小的行。

关于mysql - 如何在 SQL 中连接两个带有 id 和最近的下一个日期的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58542716/

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